2016-07-17 35 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中增加对此设计的更多支持。 –