navigationController 如何在此代码中设置它的 topViewController(来自 CoreDataBooks 示例)?
Posted
技术标签:
【中文标题】navigationController 如何在此代码中设置它的 topViewController(来自 CoreDataBooks 示例)?【英文标题】:how does navigationController get it's topViewController set in this code (from CoreDataBooks example)? 【发布时间】:2011-02-26 05:13:31 【问题描述】:我假设在 NIB 文件中有一些映射,但是我无法通过查看此代码和 Interface Builder 中的 NIB 文件来证明自己在这里是如何工作的。
该示例的源代码可在here 获得。
有人能解释一下topViewController是在这个应用程序中设置的,比如在CoreDataBooksAppDelegate.m“applicationDidFinishLaunching”方法中,获得了一个RootViewController的实例吗?我猜这个解释可能围绕着如何处理 Interface Builder 和 NIB 文件......
- (void)applicationDidFinishLaunching:(UIApplication *)application
RootViewController *rootViewController = (RootViewController *)[navigationController topViewController]; // <=== HOW DOES THIS WORK
rootViewController.managedObjectContext = self.managedObjectContext;
// Configure and show the window
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
【问题讨论】:
【参考方案1】:好像是在MainView.xib文件中设置的。导航控制器内部有一个设置为 RootViewController 类的视图控制器。
【讨论】:
所以NIB设置暗示ios将在传递给“applicationDidFinishLaunching”之前创建此类项目的实例? 它“懒惰地”加载东西,这意味着当你尝试访问一个项目时,它会从笔尖加载它。以上是关于navigationController 如何在此代码中设置它的 topViewController(来自 CoreDataBooks 示例)?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NavigationController 保持在 subViewController 方向?
添加到 NavigationController 时如何释放 ViewController 对象?
如何在 ViewController 及其 NavigationController 上添加 UIview
如何使用 UIApplicationShortCut 和 NavigationController 导航以获取孩子 4
如何在 UIPopOverController 中嵌套 navigationController?
如何在 iPhone 上的 UIPopoverController 中显示 NavigationController-background