我正在将我的应用程序从 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)
非常感谢您的帮助!
谢谢你。