iPad:在RootView中合并SplitViewController和NavigationController的概念?

iPad:在RootView中合并SplitViewController和NavigationController的概念?,ipad,uinavigationcontroller,uisplitviewcontroller,Ipad,Uinavigationcontroller,Uisplitviewcontroller,我在合并主视图中使用SplitViewController和控制左窗格弹出窗口/侧栏表视图的“RootView”控制器这两个概念时遇到问题 我想让左侧的“RootView”充当导航菜单,但是当RootView通过MainWindow.xib绑定到SplitView的左窗格中时,我该怎么做呢 基本上,我希望左侧导航与内置的电子邮件应用程序文件夹深入导航一样工作。是否有一个示例iPad项目在左/根窗格中同时使用SplitView和NavigationView?创建SplitView项目后,打开Roo

我在合并主视图中使用SplitViewController和控制左窗格弹出窗口/侧栏表视图的“RootView”控制器这两个概念时遇到问题

我想让左侧的“RootView”充当导航菜单,但是当RootView通过MainWindow.xib绑定到SplitView的左窗格中时,我该怎么做呢


基本上,我希望左侧导航与内置的电子邮件应用程序文件夹深入导航一样工作。是否有一个示例iPad项目在左/根窗格中同时使用SplitView和NavigationView?

创建SplitView项目后,打开RootViewController.m文件并查看-tableViewDidSelectRowAtIndexPath方法。您将看到您单击的项目随后被设置为DetailViewController的属性

您正在寻找的设计需要将另一个视图控制器推送到导航堆栈上。因此,如果您想象电子邮件应用程序,当用户选择一个文件夹时,detailView不会更新,但收件箱的下一级会推送到堆栈上。当用户从收件箱中选择邮件时,详细信息视图将使用邮件内容进行更新,而RootViewController只会停留在它所在的位置

在-tableViewDidSelectRowAtIndexPath方法中,声明新的视图控制器

NextViewController *nextView = [[NextViewController alloc] initWithStyle:UITableViewStylePlain];
//This assumes you have another table view controller called NextViewController
//We assign it to the instance variable "nextView"

[self.navigationController pushViewController:nextView animated:YES];
//tells the navigation controller to "slide" the "nextView" instance on top
//if animated:NO it wouldn't slide, it would just "update"

[nextView release];
//release the viewController, it's now retained automatically by the NavigationController

这有意义吗?

非常好的帮助。但只有一个问题。贾斯汀,你能帮忙吗?实际上,当我转到下一个视图控制器时,其中有另一个列表,但单击该列表不会更新我的详细视图控制器。DetailView仅在我从RootViewController更新时更新??那是什么?m i遗漏了什么??您必须更新您称为“下一个视图控制器”的.m文件中的-tableView:DidSelectRowatineXpath:中的代码。每个单独的视图控制器很可能都有自己的.h和.m文件,其中的代码控制各个视图控制器中发生的事情