gpt4 book ai didi

ios - 如果它是 subview Controller ,如何将 AppDelegate 中的 managedObjectContext 传递给正确的 View Controller ?

转载 作者:行者123 更新时间:2023-11-28 17:54:03 24 4
gpt4 key购买 nike

我有一个 subview Controller ,需要在其上设置 managedObjectContext 才能正常运行,而我考虑使用单例 this question似乎强烈指出应该从 AppDelegate 开始传递它。

但是,我不知道如何将它传递给 subview Controller (请注意,它是通过 Storyboards 设置的)。我尝试了几种方法:

  1. prepareForSegue 中,在调用嵌入 segue 之前,我将对目标 View Controller 的引用作为属性保存在包含 View Controller 中,然后尝试访问此属性,但在 didFinishLaunching segue 显然还没有设置。
  2. 访问包含 View Controller 的 childViewControllers 属性,但同样,在 didFinishLaunching 中未填充此属性。

因此,尽管 Core Data 模板和示例似乎表明应该在 didFinishLaunching 中设置其他 View Controller 的 managedObjectContext,但我看不出有什么办法。

我如何正确地将 managedObjectContext 传递给需要它的 View Controller ?

最佳答案

将 NSManagedObjectContext 属性添加到根 Controller 的公共(public) API,然后在 didFinishLaunching 中将其设置为应用委托(delegate)的托管对象。然后,您可以使用 Root View Controller 中的上下文将其传递给后续 View Controller 。在 didFinishLaunching 中:

MyRootViewController *controller = (MyRootViewController *)self.window.rootViewController;
controller.context = self.managedObjectContext;

现在,您的 Root View Controller 中有一个 managedObjectContext,可以在 prepareForSegue 方法中将其传递给 subview Controller ( subview Controller 还必须具有公共(public) managedObjectContext 属性,您可以在 prepareForSegue 方法中访问该属性)。

关于ios - 如果它是 subview Controller ,如何将 AppDelegate 中的 managedObjectContext 传递给正确的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20591356/

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