iOS 9拆分视图应用程序大小调整策略
我有一个应用程序,我想在其上启用拆分视图。iPhone与iPad的用户界面略有不同(紧凑型与常规宽度) 在压缩宽度模式下,我有一个UITableView,其中包含用户可以选择的项目列表,当用户选择时,我会将一个新的视图控制器推到导航堆栈上。但是,在常规宽度中,UITableView列表显示在左侧,然后在右侧显示一些其他视图(未在UISplitViewController中实现)。所以我在两个不同的ViewController类中实现了这两个不同的屏幕 如果我的用户使用的是固定宽度的iPad,然后使用我的应用程序进入分割视图,并导致应用程序更改为压缩宽度,那么我需要更改向用户显示的ViewController。这方面的最佳策略是什么 注意:我没有使用故事板iOS 9拆分视图应用程序大小调整策略,ios,objective-c,ipad,splitview,Ios,Objective C,Ipad,Splitview,我有一个应用程序,我想在其上启用拆分视图。iPhone与iPad的用户界面略有不同(紧凑型与常规宽度) 在压缩宽度模式下,我有一个UITableView,其中包含用户可以选择的项目列表,当用户选择时,我会将一个新的视图控制器推到导航堆栈上。但是,在常规宽度中,UITableView列表显示在左侧,然后在右侧显示一些其他视图(未在UISplitViewController中实现)。所以我在两个不同的ViewController类中实现了这两个不同的屏幕 如果我的用户使用的是固定宽度的iPad,然后
谢谢 有两种方法可以解决这个问题。首先,您可以看一看,特别是关于折叠和扩展接口的部分 另一个解决方案是覆盖你的尺寸集合,这样iPhone和iPad上的显示是一样的,因为在没有折叠和展开的情况下,两个视图总是“在那里”。您可以将分割视图控制器的
首选显示模式
设置为覆盖,这在iPhone上看起来很不错。您只需添加
UITraitCollection* horizTrait = [UITraitCollection
traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular];
UITraitCollection* vertTrait = [UITraitCollection
traitCollectionWithVerticalSizeClass:UIUserInterfaceSizeClassRegular];
UITraitCollection* childTraits = [UITraitCollection
traitCollectionWithTraitsFromCollections:@[horizTrait, vertTrait]];
[self setOverrideTraitCollection:childTraits forChildViewController:self.childViewControllers[0]];
到您的UISplitViewController的父类(如果没有父类,则必须创建一个。这可以只是一个简单的导航控制器)
编辑:我应该提到,上面的代码只是将所有设备的特征设置为正则 感谢您的回复。我在想也许我应该使用状态恢复,但是根据我的特征集合恢复不同的视图控制器
相反,我想我只需要创建一个视图控制器容器,然后在willLayoutSubviews中,我将根据当前视图的特征集合决定要显示哪些视图控制器
谢谢 听起来就像是设计用来处理