iphone - iOS - 从 appDelegate 访问 Storyboard上的 viewControllers

标签 iphone ios core-data storyboard viewcontroller

我有一个使用 Core Data 的应用程序,我在应用程序委托(delegate)中创建了一个 managedObjectContext

我想将 managedObjectContext 传递到我的 Storyboard上的两个 View Controller ,以便它们使用相同的 managedObjectContext 来保存和获取。

我可以访问第一个 View Controller :

self.window.rootViewController

但是我想访问的第二个 View Controller 是在第一个 View Controller 的 segue 之后,并且没有从它返回任何引用。

我试过:

instantiateViewControllerWithIdentifier:

但这会创建一个新的 View 实例,而不是让我访问在 segue 之后出现的第二个 View Controller 。

所以我的问题是,如何访问第二个 View Controller ?

或者(因为我对此很陌生)是否有更好的方法在 View Controller 之间管理/传递数据?

提前致谢。

最佳答案

Or (as I'm very new to this) is there a better way to be managing/passing the data between the view controllers?

这取决于您要传递的数据。在这种情况下,您希望让您的 View Controller 访问您的 Core Data 托管对象上下文。因为这是您在应用程序的整个生命周期中都需要的东西,所以让您的 View Controller 通过您的应用程序委托(delegate)访问它会更好。

您可以通过 [[UIApplication sharedApplication] delegate] 执行此操作 - 但是,您可能需要对其进行类型转换以避免编译器警告,或者您可能希望创建一个返回托管对象的宏上下文以节省您的时间并使您的代码更具可读性。

如果您在创建项目时告诉 XCode 您想要使用 Core Data,您应该已经在应用程序委托(delegate)中拥有检索对象上下文的方法。如果没有,您将需要创建它们。

要创建一个宏来避免每次需要访问托管对象上下文时都必须写出 [[UIApplication sharedApplication] delegate],请查看此答案:Short hand for [[UIApplication sharedApplication] delegate]?

关于iphone - iOS - 从 appDelegate 访问 Storyboard上的 viewControllers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16788585/

相关文章:

objective-c - NSManagedObject 作为存储并持续分析原始数据

iphone - 我可以弹出到特定的 ViewController 吗?

iphone - 如何在iphone的sqlite表中获取最后10条添加的记录

ios - 为什么视频输出始终为 30 fps,尽管它设置为其他方式?

ios - 为什么我的 ModalView 以纵向模式显示?

objective-c - 如何管理核心数据中的一对多关系?

macos - OS X 上的核心数据轻迁移

iOS 支持的 InterfaceOrientations 循环崩溃

iphone - UITextView 中的多行 TextField(类似于 SMS)和/或 'Done' 按钮

ios - 如何使用 XIB 在 UITableView 中使用静态单元格的数量