繁体   English   中英

不是从 AppDelegate 启动 CoreData 视图?

[英]Launch CoreData View Not From AppDelegate?

我正在使用 Core Data 并且对它非常陌生。 这段代码看起来很重要:

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
    MasterViewController *controller = (MasterViewController *)navigationController.topViewController;
    controller.managedObjectContext = self.managedObjectContext;

它将managedObjectContext设置为所需的视图对吗? (这次是MasterViewController

现在我玩过它,但似乎无法让它工作。 如果我想从应用程序的其他地方启动MasterViewController ,而不是直接从/作为根视图启动,该怎么办?

编辑

我在InterFace Builder中看到的观点:

UINavigationController >Relationship> UIViewController >Push Segue> UITableViewController

所以在界面构建器中, UINavigationBar 是空白的第一个控制器,然后 UIViewController 连接到它,并且是用户将在应用程序中看到的第一个视图。 然后我想从那里到我的 UITableViewController 那里我有我的 CoreData 使用。

您有两种解决方案:

您必须在所有 UIViewController 之间通过所有应用程序传递NSManagedObjectContext

或者

从这样的任何地方获取您的NSManagedObjectContext

[[[UIApplication sharedApplication] delegate] mainManagedObjectContext];

确保:

  1. 您的视图控制器(不是视图)可以访问正确的managedObjectContext
  2. 您的表视图datasourceself.fetchedResultsController获取其数据。
  3. 你配置你的 fetched results controller 来为你的 tableview 获取正确的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM