gpt4 book ai didi

objective-c - 如何在 IOS8 中隐藏 UISplitViewcontroller 的 masterView

转载 作者:太空狗 更新时间:2023-10-30 03:44:29 25 4
gpt4 key购买 nike

全部,

我在 iPad 的 IOS8 中遇到了新的 UISplitViewcontroller 问题。我在 detailViewcontroller 的 Storyboard 中有一个 UITableView,单击单元格后,我应该转到另一个名为“detailinfo”的 View 。我目前正在使用“显示”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 会“跳出”,视觉效果很差。希望能得到任何帮助,谢谢

最佳答案

UISplitViewController 是一个复杂的 View Controller ,由两个 subview Controller 组成。因此,当您使用添加到任何 subview Controller 的一些 segue 时,您要求 subview Controller 执行 segue。并且这个 subview Controller 可以部分控制事件窗口。

在您的情况下,您需要要求 Split View Controller 执行转场。因此,您应该将 segue 添加到处理事件窗口的 Split View Controller 中。这样您将拥有全屏选项。

更新

如果你不想使用 present 作为模态并且想避免“跳出”效果你可以使用动画隐藏 master

UISplitViewController *splitViewController = [self splitViewController];
[UIView animateWithDuration:0.25 animations:^{
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
} completion:^(BOOL finished) {
[splitViewController showDetailViewController:vc sender:nil];
}];

关于objective-c - 如何在 IOS8 中隐藏 UISplitViewcontroller 的 masterView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26221956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com