gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:57 26 4
gpt4 key购买 nike

我有一个使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com