gpt4 book ai didi

iOS 通过 UISplitView 呈现 View 可能吗?

转载 作者:行者123 更新时间:2023-11-29 02:20:58 25 4
gpt4 key购买 nike

我一直在努力实现特定的 View 呈现。在我的应用程序中,我使用 UISplitViewController 来显示菜单及其内容。我想在整个 View 上自定义显示一个 View ,如图所示。

enter image description here

消息 View 和调暗 View 用于提供信息内容,并会在设定的时间段后自动消失。这可以通过我的 UISPlitViewController.m 完成吗?

我已经尝试了几种方法,但没有达到预期的结果。

  1. 创建从 Splitview 到消息 View 的 Segue,并从 viewDidLoad/viewDidAppear 调用 Segue:

    [self performSegueWithIdentifier:@"showMessageView" sender:self];

这会在详细 View 中加载 View 。

  1. 尝试从 viewDidAppear: 中的代码实例化:

    MessageViewController *messageVC = [self.storyboard instantiateViewControllerWithIdentifier:@"messageView"];
    [self addChildViewController: messageVC];
    [self.view addSubview: messageVC.view];
    [self presentViewController: messageVC animated:YES completion:nil];

这会导致崩溃:

Application tried to present modally an active controller

最佳答案

我遇到了类似的问题:一旦变暗的叠加层完全可见(显示动画已完成),它后面的 UISplitViewController 就会消失。

我的技巧是将 modalPresentationStyle 设置为创建后直接呈现的 VC 的 UIModalPresentationOverFullScreen

以下是我的代码:

UIViewController* customShapeController = [self.storyboard instantiateViewControllerWithIdentifier:@"CustomShapeController"];
customShapeController.modalPresentationStyle = UIModalPresentationOverFullScreen;
[self presentViewController:customShapeController animated:YES completion:nil];

这也适用于 segues。确保 segue 在您的 Storyboard 中设置为“Present Modally”。然后在你的细节中 VC 调用 segue:

[self performSegueWithIdentifier:@"CustomDrawingSegue" sender:sender];

然后调用 prepareForSegue:,您可以在目标 VC 上设置 modalPresentationStyle 属性:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UIViewController *dest = (UIViewController *)segue.destinationViewController;
dest.modalPresentationStyle = UIModalPresentationOverFullScreen;
}

关于iOS 通过 UISplitView 呈现 View 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140556/

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