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

mee*_*ans 7 iphone objective-c ipad

我跟随这个例子:http://doronkatz.com/ipad-programming-tutorial-hello-world.这个例子效果很好.

现在我想在splitview中为3个选项卡和每个选项卡提供一个新的navigationcontroller.但我不知道如何实现它.我转到这段代码:

- (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];
}        
Run Code Online (Sandbox Code Playgroud)

但我知道我实际上不必使用'pushviewcontroller',我只想从这一点开始一个新的navigationcontroller,因此对于splitview中的每个选项卡.我怎么能做到这一点?我知道这是非常基本的,但我无法弄明白.

谢谢.

Ale*_*lex 0

如果我理解正确的话,您有一个 UISplitViewController,并且您希望有三个 UINavigationController 作为详细视图。在这种情况下,如果在 UISplitViewController 类中实现,则以下内容将起作用:

    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];


    }
Run Code Online (Sandbox Code Playgroud)