2012-10-21 23 views
0

我端起我的應用程序從iOS3.2到iOS6的失敗對iOS6的。在iPad上,我使用SplitViewController。在RootViewController的BTN點擊更改DetailViewController在iPad的縱向

在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)

你的幫助是非常感謝!

謝謝。

回答

0

我看到你可能想看的幾件事:1)爲什麼不使用didSelectRowAtIndexPath而不是這個自定義方法? 2)您似乎在呼喚你的viewControllers釋放... ARC消除了釋放的需要。 3)在第一行你有「self.parentViewController.parentViewController」??? 4)你正在使用init的init ...爲什麼不使用storyboard和segues? 我帶來的一些這些,因爲我完成了同類型的項目......移動最初寫給IOS3到iOS6的應用程序。我實際上不得不重寫整個應用程序,因爲它已經發生了很大變化。

相關問題