1

私が読んだすべてのガイドとチュートリアルでは、次のようにアプリ デリゲートから実行するように指示されています。

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

ただし、私のView Controllerは、コンテナView ControllerとNavigation View Controllerのクレイジーな階層にあります。これは、厄介な結果を招くことなく、ターゲットのView Controllerからそれを行うための許容可能な方法でもありますか?

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

1 に答える 1

1

要するに、はい。どちらの方法でも構いません。View Controllerにivarとして保存せず、デリゲートから直接アクセスするだけの例を見てきました。ほとんどの場合、そして私の好みは、上記のようにすることです。

並行性の問題を尊重している限り、問題ありません。

于 2012-07-29T17:25:13.230 に答える