代码之家  ›  专栏  ›  技术社区  ›  meersmans

将navigationcontroller添加到splitview中的详细信息视图

  •  7
  • meersmans  · 技术社区  · 14 年前

    我以这个例子为例: http://doronkatz.com/ipad-programming-tutorial-hello-world . 这个例子很有用。

    但我不知道如何实施。 我用这个代码:

    - (void)setDetailItem:(id)newDetailItem {
    if (detailItem != newDetailItem) {
        [detailItem release];
        detailItem = [newDetailItem retain];
    
        // Update the view.
        navigationBar.topItem.title = detailItem;
    
        if ([detailItem isEqualToString:@"Test"]) {
            TestViewController *testViewController = [[TestViewController alloc] initWithNibName:@"TestView" bundle:nil];
            [self.navigationController pushViewController:testViewController animated:NO];
            [mapViewController release];
    
        }
        if ([detailItem isEqualToString:@"Test2"]) {
    
        }
    
    }
    
    if (popoverController != nil) {
        [popoverController dismissPopoverAnimated:YES];
    }        
    

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  2
  •   greg    14 年前

    据我所知,您需要一个拆分视图控制器作为主控制器。左侧面板将选择一个项目,该项目的右侧详细信息视图将包含3个选项卡。每个选项卡都有一个导航控制器。appstore遵循类似于detail视图的模式。

    • 根目录:拆分视图控制器
      • 详细视图:选项卡控制器(有关西瓜的所有信息)
        • 表1:导航控制器
          • 第1页:第一个选项卡根控制器(西瓜农场地图)
        • 表3:导航控制器
          • 第3页:第一页根控制器(西瓜食谱)

    使用此模式,您可以在viewDidLoad上创建控制器结构,但是在响应setDetailItem时更改第1、2、3页的内容

    良好参考: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007457

        2
  •  0
  •   Alex    14 年前

        if ([detailItem isEqualToString:@"Test"]) {
    
            TestViewController *testViewController = [[TestViewController alloc] initWithNibName:@"TestView" bundle:nil];
    
            //since self.viewControllers is immutable, let's make our own temporary copy.
            NSMutableArray *tempArray = [self.viewControllers mutableCopy];
    
            //switcheroo with the new view controller
            [tempArray replaceObjectAtIndex:1 withObject:testViewController];
    
            // our new view controller is retained by the array, so let's release it
            [testViewController release];
    
            //set the new array to be displayed
            self.viewControllers = tempArray;
    
            //clean up - out mutableCopy returns a retained object
            [tempArray release];
    
    
        }
    
    推荐文章