ios – 当它们是两个视图之间的导航控制器时,如何将managedObjectContext从appDelegate传递到第一个ViewController

ios – 当它们是两个视图之间的导航控制器时,如何将managedObjectContext从appDelegate传递到第一个ViewController,第1张

概述在研究和试图弄清楚我如何解决以下问题时,我已经在键盘上击打了3天以上. 我有一个看起来像这样的故事板: 初始应用启动箭头 – >到导航控制器 – >到主视图控制器. 我的appDelegate正在创建managedObjectContext,它用数据填充一些实体(仅用于测试目的,一旦我准备好与外部源集成,它将被删除).这工作很好.现在我的问题是我不知道我如何将MOC从appDelegate传递到我 在研究和试图弄清楚我如何解决以下问题时,我已经在键盘上击打了3天以上.

我有一个看起来像这样的故事板:

初始应用启动箭头 – >到导航控制器 – >到主视图控制器.

我的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]无法识别的选择器发送到实例…

解决方法 如果你从Xcode 4.3中的“master-detail”应用程序模板创建一个新的应用程序(我认为也是4.2),选中“使用故事板”和“使用核心数据”选项,你会发现以下内容: AppDelegate.m:

- (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;}

这似乎正是您正在寻找的.关键是您可以查询导航控制器的视图控制器.

总结

以上是内存溢出为你收集整理的ios – 当它们是两个视图之间的导航控制器时,如何将managedObjectContext从appDelegate传递到第一个ViewController全部内容,希望文章能够帮你解决ios – 当它们是两个视图之间的导航控制器时,如何将managedObjectContext从appDelegate传递到第一个ViewController所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1007143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存