2011-11-11 6 views
0

私のAppDelegateでは、xcode4テンプレートを使って私のsplitviewをセットアップしました。コードは以下の通りです。私の質問は、どのように私はMasterViewControllのdidSelectRowAtIndexPathメソッドからdetailItemプロパティにアクセスするのですか?新しいsplitviewテンプレートがスターターコードの構造を変更し、detailViewControllerがIBOutletとして設定されなくなりました。iPad detailItem Access

AppDelegate.m

masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPad" bundle:nil]; 
    detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil]; 

    UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];   
    UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; 

    self.splitViewController = [[UISplitViewController alloc] init]; 
    self.splitViewController.delegate = detailViewController; 
    self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil]; 

    self.window.rootViewController = self.splitViewController; 

MasterViewController.m 私はこのような何かをしたいと思います:

self.detailViewController.detailItem = some object;   

答えて

0

[[self.splitViewController.viewControllers objectsAtIndex:1] setDetailItem:someObject];を試してみてください。

+0

私は既にそれを試してみました:**キャッチされていない例外 'NSInvalidArgumentException'、理由: - [UINavigationController setDetailItem:]:インスタンス0x6058380に送信されたセレクタが認識されませんでした ' – RickR

+0

'[[[self。 splitViewController.viewControllers objectsAtIndex:1] rootViewController] setDetailItem:someObject]; '代わりに、UINavigationコントローラーとView Controllerについて一般的な内容をお読みください。 – MrMage

+0

お返事ありがとうございます。私は一般的にUINavigationとView Controllerについては読んだことがありますが、解決策を見ることはできませんでした。あなたのソリューションに関しては、rootViewControllerを使用しても動作しませんでしたが、visibleViewControllerは機能しません。私はそれをより良く理解するためにドキュメンテーションに潜入しています。再度、感謝します。 – RickR