1

我读过的所有指南和教程都告诉我从应用程序委托中这样做:

UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
PictureViewController *picList = (PictureViewController *)[[navController viewControllers] lastObject];
picList.managedObjectContext = self.managedObjectContext;

但是,我的视图控制器处于容器视图控制器和导航视图控制器的疯狂层次结构中。这也是从目标视图控制器执行此操作而没有任何不良后果的可接受方式吗?

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;
4

1 回答 1

1

简而言之,是的。任何一种方法都很好。我已经看到人们只是直接从委托访问它,而不是在视图控制器中将其保存为 ivar 的示例。大多数情况下,我的偏好是按照您上面所做的那样做。

只要您尊重并发问题,就可以了。

于 2012-07-29T17:25:13.230 回答