アプリを iOS3.2 から iOS6 に移植しています。iPad では、SplitViewController を使用します。
RootViewController には、テーブル ビューがあります。ユーザーがテーブル ビューの行をクリックすると、DetailViewController が変更されます。
これを行うコードは次のとおりです。
- (void)setDetailViewAuthorPage {
UISplitViewController *splitViewController =
(UISplitViewController *)self.parentViewController.parentViewController;
UIViewController *detail =
[splitViewController.viewControllers objectAtIndex:1];
DetailViewControllerAuthorPageiPad <SubstitutableDetailViewController>
*detailViewController =
[[DetailViewControllerAuthorPageiPad alloc]
initWithNibName:@"DetailViewControllerAuthorPageiPad"
bundle:nil];
NSArray *viewControllers =
[[NSArray alloc]
initWithObjects:self.navigationController,
detailViewController,
nil];
splitViewController.viewControllers = viewControllers;
[detailViewController viewWillAppear:YES];
[viewControllers release];
// Dismiss the popover if it's present.
if (popoverController != nil) {
[popoverController dismissPopoverAnimated:YES];
}
[detailViewController
showRootPopoverButtonItem:self.rootPopoverButtonItem
root:self];
横向きでは、このコードは正常に機能します。
縦向きでは、DetailViewController は変更されません。行が選択され、上記のコードが実行されていますが、DetailViewController の変更は見られません。(私はXcode 4.5を使用しています)
助けていただければ幸いです。
ありがとうございました。