在研究并试图弄清楚如何解决以下问题时,我已经用键盘敲打了 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 时,我的代码可以工作,但是我在所有视图中都丢失了导航栏。我也知道如何将 MOC 从我- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
的 mainMenu通过.
我已经在这个站点(和其他站点)上搜索了许多线程,我只找到了“选项卡式应用程序”的解决方案,其他人希望我序列化对象,但出于我的目的,我不能这样做。(只有少数视图会收到 MOC,而其他视图将是一个视图创建和更改的通行证数据,以便在独特视图中为特定目的量身定制)
非常感谢对 iOS 和 Objective-C 中这个小块的任何帮助。先感谢您。
编辑:我得到的错误是“由于未捕获的异常而终止应用程序...... [UINavigationController setManagedObjectContext] 无法识别的选择器发送到实例......