我一直在 Stackoverflow 上阅读这个帖子,并试图在我自己的项目中复制该解决方案,但没有成功。
我的项目有 4 个选项卡。在我的应用程序委托中,我这样做:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
Page1 *page1 = (Page1 *)[navController topViewController];
Page2 *page2 = (Page2 *)[navController topViewController];
Page3 *page3 = (Page3 *)[navController topViewController];
Page4 *page4 = (Page4 *)[navController topViewController];
page1.managedObjectContext = self.managedObjectContext;
page2.managedObjectContext = self.managedObjectContext;
page3.managedObjectContext = self.managedObjectContext;
page4.managedObjectContext = self.managedObjectContext;
[self.window makeKeyAndVisible];
return YES;
}
在原始线程中,它说我需要为每个要在其上使用核心数据的选项卡的每个 navController 创建一个 IBOutlet。
虽然您可以为 UINavigationController 分配多个委托,但对于插座而言并非如此,但您只能为 navController 提供一个插座。
我可以让 Page1 工作,但其他页面只是崩溃;因为缺少 IBOutlet。
对于 Y 标签,我真的需要 X IBOutlets 还是可以用另一种方式来做?
另一个问题是接受答案的原始线程是:
理想情况下,您希望将 NSManagedObjectContext、NSFetchedResultsController 或相关的 NSManagedObject “向下”传递到 UIViewController。
但是没有代码或示例说明如何执行此操作。
理想情况下,我不想使用单例或到处使用应用程序委托。
任何确认和澄清都会很棒。
谢谢。