コアデータを含むテーブルビューコントローラーにセグエしたい最初のイントロビューコントローラーでストーリーボードを使用しています。最初のコントローラーがルート コントローラーであることは理解していますが、コア データに接続するため、2 番目のコントローラーをルートにする必要があります。アプリ デリゲートで次の操作を行うと、次のエラーが発生します。
-[IntroViewController setViewControllers:]: 認識されないセレクターがインスタンス 0x7465b70 に送信されました 2013-01-21 22:29:15.331 PManager[35522:c07] *** キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[IntroViewController setViewControllers:]: 認識されないセレクターがインスタンス 0x7465b70 に送信されました'
私の最初のビューは、ストーリーボードで「introController」と呼ばれます。
2 つ目のビューは、ストーリーボードの「listController」と呼ばれるコア データにフックされたテーブル ビューです。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)options
{
// Get a reference to the navigation controller first
UINavigationController *navigationController = (UINavigationController *) self.window.rootViewController;
IntroViewController *introController = [navigationController.storyboard instantiateViewControllerWithIdentifier:@"introController"];
RootViewController *listController = [navigationController.storyboard instantiateViewControllerWithIdentifier:@"listController"];
// First item in array is bottom of stack, last item is top.
navigationController.viewControllers = [NSArray arrayWithObjects:listController, introController, nil];
// THEN get the root view controller (RootViewController)
RootViewController *rootViewController = (RootViewController *)[[navigationController viewControllers] objectAtIndex:0];
// And now pass the context
rootViewController.managedObjectContext = managedObjectContext;
[self.window makeKeyAndVisible];
return YES;
}