2013-09-25 134 views
7

我想添加splitview控制器作爲子視圖控制器。父視圖控制器是導航控制器。父視圖控制器隱藏導航欄,我想顯示狀態欄爲iOS 6標準。我已將splitview控制器添加爲子視圖控制器,因爲我想從splitview控制器推送到另一個視圖控制器。iOS7 UISplitViewController狀態欄

我面臨的問題是我在添加splitview控制器時,狀態欄與內容重疊。爲masterview,detailview,parentview,splitview設置edgesForExtendedLayout爲UIRectEdgeNone似乎不起作用。

請讓我知道我可以應用的解決方案,以防止從狀態欄重疊的內容和顯示狀態欄作爲ios 6標準。

我試過用MGSplitViewController來做,但面臨同樣的問題。

謝謝。

+0

具有相同的問題。也好奇。看起來Apple推薦的技術不適用於SplitViewController。例如見: https://developer.apple.com/library/ios/qa/qa1797/_index.html –

+0

你知道了嗎?我也遇到了與UISplitViewController相同的問題,並且像我一樣,我已經嘗試爲所有可能的視圖控制器設置edgesForExtendedLayout無濟於事。謝謝。 –

回答

0

當你說:

我想補充拆分視圖控制器作爲子視圖控制器。

是否將UISplitViewController設置爲rootViewController?如果不是這可能是爲什麼它很奇怪。

然而UISplitViewControllers沒有設計這樣的工作,看到這個答案https://stackoverflow.com/a/2642701/383603

我會使用容器視圖控制器來創建自定義拆分視圖控制器:這裏良好的聯繫https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

負載:Container View Controller Examples

顯然有點煩人不得不重新創建它,但至少你完全控制它的行爲。

0

我認爲你必須使用viewcontrollers的父母,並啓用導航控制器的孩子可能會幫助你。如果它不,然後嘗試這個tutorial。 這可以幫助我很多,我希望它也能幫助你。

1

我有完全相同的問題,並能夠解決這個問題。我有一個UITabBarController在每個前兩個選項卡上的根與不同的UISplitViewController。對於我的一些詳細信息視圖,我將它與頂部的導航欄和底部的選項卡欄重疊。

我試着設置了edgesForExtendedLayout,一開始沒有成功,但事實證明,您需要儘早設置它以使其生效。你沒有在你的問題中指定你正在設置你的屬性,所以我希望這也會對你有幫助:在你的UIViewController的-viewDidLoad中設置edgesForExtendedLayoutUIRectEdgeNone

這是固定的,對於我來說,雖然較早嘗試在-viewWillLayoutSubviews要做到這一點必須不惜一切沒有影響的代碼:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Prevent detail screen from sitting underneath navigation bar and tab bar: 
    self.edgesForExtendedLayout = UIRectEdgeNone; 
} 

希望這有助於...

Erik