2011-01-25 64 views
12

Apple僅爲橫向提供分割視圖,但不提供縱向模式。有沒有什麼辦法在縱向模式下實現分屏?以縱向模式分割視圖!

[splitViewController setHidesMasterViewInPortrait:NO]; 

這將工作。但是這個API沒有記錄(私人)。

感謝,
Manjunath

回答

23

對於iOS5 +,

轉到您的detailViewController。您的detailViewController應該有UISplitViewControllerDelegate。只需簡單地將此代碼放入:

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

這樣做就可以了。它是公共API。

+1

這在iOS 8中已棄用。 – Joey 2014-07-31 19:37:13

2

看看這個MGSplitViewController

這是一個具有各種有用增強功能的自定義分割視圖控制器。當然,你可以在肖像中顯示主視圖。

0

有時候,我試圖實現類似的事情。在嘗試了Matt的代碼之後,並沒有嘗試創建一個類別,我意識到唯一的方法就是使用兩個自定義視圖(以Apple不會拒絕你的應用程序的方式)。請參閱this問題。

2
+0

鏈接不再有效。我很想看到它。 – SAHM 2011-10-18 06:08:56

+0

https://github.com/SlavaBushtruk/APSplitViewController – Mustafa 2011-10-18 07:36:22

16

我在這裏的貢獻不大。

字節的答案是正確的,直到iOS的7,iOS的8起,你應該使用preferredDisplayMode

例如,縱向顯示模式中,兩個視圖控制器執行以下操作:

self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; 

希望這有助於!在iOS中的Xcode 8 6+

2

更新

if let splitVCExists = self.splitViewController{ 
     splitVCExists.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible 
    }  

DOC: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/index.html#//apple_ref/occ/instp/UISplitViewController/preferredDisplayMode

有一件事我注意到的是,它會嘗試佈局基礎上,preferredDisplayMode只要在splitviewcontroller有足夠空間。否則會選擇顯示模式以適合內容。我已經使用了它,它讓我們在縱向和橫向上都能看到我想要的風景。

相關問題