初始应用启动箭头 – >到导航控制器 – >到主视图控制器.
我的appDelegate正在创建managedobjectContext,它用数据填充一些实体(仅用于测试目的,一旦我准备好与外部源集成,它将被删除).这工作很好.现在我的问题是我不知道我如何将MOC从appDelegate传递到我的第一个ViewController,因为导航控制器挡住了.我在appDidFinish方法中的当前代码如下所示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Pass the managed object context to the root view controller MainMenuViewController *rootView = (MainMenuViewController *)self.window.rootViewController; rootView.managedobjectContext = self.managedobjectContext; //My actual Core data setup and adding data to it,it works I've tested it. return YES; }
现在,当我将故事板中的应用程序启动箭头指向我的mainMenuViewController时,我的代码可以正常工作,但是我的所有视图中都丢失了导航栏.我也知道如何通过 – (void)prepareForSegue将传递MOC从我的mainMenu传递到另一个视图:(UIStoryboardSegue *)segue发送者:( id)sender但我似乎无法弄清楚如何进行初始传递appDelegate到MainViewController,因为darn导航控制器位于两者之间.
我已经在这个网站(和其他人)上搜索了很多线程,我只找到了“选项卡式应用程序”的解决方案,其他人希望我序列化该对象,但出于我的目的,我不能这样做. (只有少数视图会收到MOC,而其他视图会传递一个视图创建和更改的数据,以便在独特视图中针对特定目的进行定制)
非常感谢iOS和Objective-C对此nub的任何帮助.先感谢您.
编辑:我得到的错误是“由于未捕获的异常终止应用程序… [UINavigationController setManagedobjectContext]无法识别的选择器发送到实例…
解决方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; MasterViewController *controller = (MasterViewController *)navigationController.topViewController; controller.managedobjectContext = self.managedobjectContext; return YES; }
这似乎正是您正在寻找的.关键是您可以查询导航控制器的视图控制器.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。