希望您创建了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上可用。
在对此设计进行了大量研究之后,我意识到大多数包含此功能的应用程序都是手动完成的。我见过很多使用SWRevealViewController库的例子。但是,我希望我的主视图能够滚动我的详细视图。最重要的是,我发现UISplitViewDelegate的preferredDisplayMode属性仅在普通大小的设备上得到确认,而不是紧凑的。因此将其设置为PrimaryOverlay什么都不做。由于我没有在我的问题中指定设备,因此我会保留此答案,因为它可能会帮助人们开发iPad。 –
嗨@Andrew Kima对我的理解UISplitViewController的工作方式与我们预期的iPhone 6 +和iPad类似,但是对于较小的显示屏手机,我建议使用自定义视图。以下是苹果所说的**在iOS 8及更高版本中,您可以在所有iOS设备上使用UISplitViewController类;在之前的iOS版本中,该类仅在iPad上可用。** – Koushik
准确地说,我将不得不从头开始设计自定义元素和动画。由于我还没有准备好这么做,因此我决定使用选项卡式应用程序布局。希望Apple在Xcode 8和iOS 10中增加对此设计的更多支持。 –