2016-07-17 74 views
0

我想爲iOS 9上的肖像應用程序創建一個「滑出式菜單」,它允許平移手勢在模式之間切換。你在哪裏設置UISplitViewController的preferredDisplayMode?

我希望它在「隱藏 - 輔助視圖控制器顯示在屏幕上,主視圖控制器不在屏幕上」和「覆蓋 - 輔助視圖控制器在屏幕上並且主視圖控制器分層它的頂部。「

根據Apple's documentation,我需要爲UISplitViewController設置preferredDisplayMode。有人可以告訴我在哪裏修改這個屬性?

回答

0

希望您創建了splitViewController並將其設置爲您的AppDelegate中的rootViewController。

在splitViewController的viewDidLoad

- (void)viewDidLoad 
{[super viewDidLoad]; 
masterVC = [[MasterViewController alloc] init]; 
detailVC = [[DetailViewController alloc] init]; 
NSArray *vcArray = @[masterVC, detailVC]; 
self.viewControllers = vcArray; 
self.preferredDisplayMode = UISplitViewControllerDisplayModeAutomatic; 
self.presentsWithGesture = YES; 
self.preferredPrimaryColumnWidthFraction = .10; 
self.delegate = (id)self;} 

這將肯定我已經測試過它的工作。 MasterViewController是主視圖控制器,DetailViewController是secondaryviewController。

注意:在iOS 8和更高版本中,您可以在所有iOS設備上使用UISplitViewController類;在以前的iOS版本中,該類僅在iPad上可用。

+0

在對此設計進行了大量研究之後,我意識到大多數包含此功能的應用程序都是手動完成的。我見過很多使用SWRevealViewController庫的例子。但是,我希望我的主視圖能夠滾動我的詳細視圖。最重要的是,我發現UISplitViewDelegate的preferredDisplayMode屬性僅在普通大小的設備上得到確認,而不是緊湊的。因此將其設置爲PrimaryOverlay什麼都不做。由於我沒有在我的問題中指定設備,因此我會保留此答案,因爲它可能會幫助人們開發iPad。 –

+0

嗨@Andrew Kima對我的理解UISplitViewController的工作方式與我們預期的iPhone 6 +和iPad類似,但是對於較小的顯示屏手機,我建議使用自定義視圖。以下是蘋果所說的**在iOS 8及更高版本中,您可以在所有iOS設備上使用UISplitViewController類;在之前的iOS版本中,該類僅在iPad上可用。** – Koushik

+0

準確地說,我將不得不從頭開始設計自定義元素和動畫。由於我還沒有準備好這麼做,因此我決定使用選項卡式應用程序佈局。希望Apple在Xcode 8和iOS 10中增加對此設計的更多支持。 –