2015-02-06 78 views
5

我有一個分離視圖控制器在橫向模式下使用兩個導航控制器。在iPhone 6 Plus上分離視圖控制器旋轉

enter image description here

此合攏爲在人像單個導航控制器和細節視圖控制器從主推壓。

enter image description here

如果我轉回景觀當細節視圖控制器在縱向推我不明白如何把細節視圖控制器返回到它自己的導航控制器。

enter image description here

回答

4

你應該實現UISplitViewControllerDelegate。最簡單的方法可能是有自己的MySplitViewController類,併爲自己在viewDidLoad中的委託:

self.delegate = self; 

首先,你可能想showDetailViewController看起來是這樣的:

- (BOOL) splitViewController:(UISplitViewController*)splitViewController showDetailViewController:(UIViewController*)vc sender:(id)sender 
{ 
    if (splitViewController.collapsed) 
    { 
     [(UINavigationController*)splitViewController.viewControllers[0]) pushViewController:vc animated:YES]; 
    } 
    else 
    { 
     self.viewControllers = @[ self.viewControllers.firstObject, vc ]; 
    } 
    return YES; 
} 

這應該採取適當的照顧細節視圖顯示在兩個方向。

接下來,你應該實現與此類似以下的委託方法:

- (UIViewController*)    splitViewController:(UISplitViewController*)splitViewController 
separateSecondaryViewControllerFromPrimaryViewController:(UIViewController*)primaryViewController 
{ 
    UINavigationController* nc = primaryViewController; 
    UIViewController* detailVC = nc.viewControllers.lastObject; 
    return detailVC; 
} 

這種方法是你的機會採取任何你想要從主控制器和返回爲詳細視圖控制器。上面的示例代碼非常簡單,您可能需要遍歷導航視圖控制器,並從特定的視圖控制器中選擇所有視圖(假設您已從細節視圖推入)。

無論如何,這將真正得到花費一些時間和閱讀:UISplitViewController class reference尤其是UISplitViewControllerDelegate Protocol Reference 這將更清晰。 如果你想要一個快捷方式,看看Xcode分割視圖控制器模板項目。那個人還應該包含提示或確切的解決方案,以解決您的問題。