0
     detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil];

    [self.splitViewController.splitViewController viewWillDisappear:YES];
    detailViewController.strDetailId = [teaserSectionOneArray objectAtIndex:indexValue] ;
    NSMutableArray *viewControllerArray = [[NSMutableArray alloc] initWithArray:[[self.splitViewController.viewControllers objectAtIndex:1] viewControllers]];
    [viewControllerArray removeAllObjects];
    [viewControllerArray addObject:detailViewController];
    [[self.splitViewController.viewControllers objectAtIndex:1] setViewControllers:viewControllerArray animated:NO];
    [self.splitViewController.splitViewController viewWillAppear:YES];
    [viewControllerArray release];

此代码用于推送到详细视图。单击按钮时,如何在详细视图中弹出另一个视图控制器?它不支持[self.navigationController popViewControllerAnimated:YES];. 如何处理这个问题?提前致谢!

4

1 回答 1

2

哇哦,这不是您将视图控制器推送到导航控制器堆栈上的方式!

你不必打电话viewWillDisappearviewWillAppear这样你自己!您也不必自己添加detailViewControllersplitViewController.viewControllers数组中!

你需要做的是:

  • 确保你的 UISplitViewController 有一个NavigationController作为它的一部分detailViewController(即屏幕右侧的 ViewController 应该是一个UINavigationController,而不是常规的UIViewController)。
  • 剩下的就很容易了,因为它的工作方式与任何常规UINavigationController. UINavigationController您是 an 的正确部分这一事实与您在任何其他上下文中UISplitViewController使用 an 时没有什么不同。UINavigationController

只需使用pushViewController:animated:popViewControllerAnimated:的方法UINavigationController来推送和弹出您的视图控制器。使用您添加的UINavigationControllerUISplitViewController定义IBOutlet来指向它,或者通过访问(UINavigationController*)[self.splitViewController.viewControllers objectAtIndex:1].

于 2012-09-14T12:07:27.847 回答