全部,
我在IOS8 for iPad中遇到了新的UISplitViewcontroller问题。我在detailViewcontroller的storyboard中有一个UITableView,在单击单元格时,我应该转到另一个名为" detailinfo"的视图。我目前正在使用" show" Segue公司。
然而,目前的segue只是推动了正确的部分。我想它显示全屏,但我不知道如何制作它,我尝试使用splitViewController的preferredDisplayMode属性,结果是它只是隐藏主视图但没有调整detailView的大小。我不想用礼物作为模态。
目前我正在做的是
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([[segue identifier]isEqualToString:@"showStudentDetail"]){
if(self.traitCollection.horizontalSizeClass != UIUserInterfaceSizeClassCompact){
UISplitViewController *splitViewController = (UISplitViewController *)self.navigationController.parentViewController;
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}
}
}
并在viewDidAppear中,使用
- (void)viewDidAppear:(BOOL)animated {
if(self.traitCollection.horizontalSizeClass != UIUserInterfaceSizeClassCompact){
UISplitViewController *splitViewController = (UISplitViewController *)self.navigationController.parentViewController;
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAutomatic;
}
}
这会有效,但是masterViewController会跳出"跳出来"这有很糟糕的视觉效果。 希望可以得到任何帮助,谢谢
答案 0 :(得分:4)
UISplitViewController
是一个复杂的视图控制器,由两个子视图控制器组成。因此,当您使用添加到任何子视图控制器的某个segue时,您要求子视图控制器执行segue。并且这个子视图控制器可以部分控制活动窗口。
在您的情况下,您需要让拆分视图控制器执行segue。因此,您应该将segue添加到处理活动窗口的拆分视图控制器中。这样您就可以使用全屏选项。
<强>更新强>
如果你不想使用礼物作为模态,并且想避免&#34;跳出&#34;效果你可以使用动画隐藏大师
UISplitViewController *splitViewController = [self splitViewController];
[UIView animateWithDuration:0.25 animations:^{
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
} completion:^(BOOL finished) {
[splitViewController showDetailViewController:vc sender:nil];
}];