0

ここに画像の説明を入力

Main View Controller で managedObjectContext への参照を渡すために、App デリゲートに次のコードがあり、正常に動作します。

//Grab the Navigation Controller in front of the Main View Controller
UINavigationController *nav = (UINavigationController *)self.window.rootViewController;

//Grab Main View Controller out of the navigation controller at Position 0
SceneTwo *sceneTwo = (SceneTwo *) [[nav viewContollers]objectAtIndex:0];

//Pass the reference to managedObjectContext.  
sceneTwo.managedObjectContext = self.managedObjectContext;

問題: 前にナビゲーション コントローラーがあるメイン ビュー コントローラー (シーン 1) 内の ContainerView で managedObjectContext への参照を渡したいと思います。上の写真をご覧ください。

containerView のナビゲーション コントローラを取得するコードは何ですか? そのナビゲーション コントローラーからシーン 1 を取得するコードは何ですか?

ありがとう。

4

1 に答える 1

0

childViewControllersメインビューコントローラーはコンテナービューを使用するため、メインビューコントローラーの配列内のビューを反復処理できます。図を見ると、最初のコントローラーは後のナビゲーションコントローラーである必要があります。以下は入る可能性がありMainViewControllerます。

UINavigationController *scene1Nav = (UINavigationController *)[[self childViewControllers] objectAtIndex:0];

正しいものを見つけたら、それを設定することができますmanagedObjectContext

別の方法(すべての子ビューとナビゲーションコントローラーを反復処理するよりも苦痛が少ない場合があります)は、アプリデリゲート(たとえば、コンテキストを必要とするコントローラー)managedObjectContextを参照して、シーン自体にシーンを設定することです。 viewDidLoad。これが機能managedObjectContextするためには、AppDelegateのプロパティまたはゲッターメソッドである必要があります。

self.managedObjectContext = [(YourAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
于 2013-02-07T03:40:49.723 に答える