2015-01-08 46 views
6

我有一個UINplitViewController嵌入UINavigationController中,並帶有UINavigationItem按鈕以縱向方式切換主視圖的顯示。當視圖首次以縱向方向加載時,我想在細節視圖上方顯示主視圖。UISplitViewController在縱向上顯示主視圖上方的詳細信息

我發現的任何類似的例子都顯示了縱向分割屏幕的主視圖和詳細視圖,但是我需要詳細視圖是縱向全屏,主視圖覆蓋了UISplitViewController首次加載時的詳細視圖如果主視圖已從左側刷出)。有誰知道這是怎麼做到的嗎?

回答

10

編輯:它不是重複的。在評論中發現的答案。解決方法是在UISplitViewController上使用preferredDisplayMode並將其設置爲UISplitViewControllerDisplayModePrimaryOverlay

留下評論和後代的上下文的原始答案。


原始回答

這就是一個重複:UISplitViewController in portrait on iPhone shows detail VC instead of master

作爲參考,在這種情況下,解決方案是有一個實現UISplitViewControllerDelegate使用以下代碼視圖控制器:

- (BOOL)splitViewController:(UISplitViewController *)splitViewController 
collapseSecondaryViewController:(UIViewController *)secondaryViewController 
    ontoPrimaryViewController:(UIViewController *)primaryViewController { 

    if ([secondaryViewController isKindOfClass:[UINavigationController class]] 
     && [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]] 
     && ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) { 

     // Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded. 
     return YES; 

    } else { 

     return NO; 

    } 
} 
+0

不是重複的,該解決方案用於顯示主視圖或詳細視圖。我正在尋找一個答案,同時顯示主和細節,主視圖覆蓋部分細節視圖。你能否指點我一個不同的答案或發佈一個新的解決方案? –

+0

啊。我誤讀了。 UISplitViewController上有一個'preferredDisplayMode'屬性。那樣有用嗎?不知道什麼屬性是我的頭頂。 – lewiguez

+0

沒有。這是行不通的。只是分裂屏幕。 :( – lewiguez

1

或者您可以使用:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { 

    // Force master view to show in portrait and landscape 

    return NO; 
} 
相關問題