iOS 13.1 Objective-C ModalPresentation 全屏

Posted

技术标签:

【中文标题】iOS 13.1 Objective-C ModalPresentation 全屏【英文标题】:iOS 13.1 Objective-C ModalPresentation Fullscreen 【发布时间】:2019-09-25 15:13:40 【问题描述】:

ios 13 中发现了下一个奇怪的错误,它以模态方式呈现在全屏视图控制器上。最初它坏了,它不是全屏打开的,所以我尝试了下面描述的方法 this link 现在它加载并等待触摸屏幕上的任何位置。 目前这是父视图控制器,它应该以模态方式显示TermsVC

mainView.hidden = YES;
        IDTermsViewController *termsVC = [[self storyboard] instantiateViewControllerWithIdentifier:@"IDTermsViewController"];
        termsVC.delegate = self;
        if (@available(iOS 13.0, *)) 
            [termsVC setModalPresentationStyle: UIModalPresentationFullScreen];
        
        [self presentViewController:termsVC animated:YES completion:nil];

目前,在展示了这个 termsVC 之后,我得到了下一个状态,如下面的屏幕截图所示。如果我做任何动作 - 摇动手机,截屏,点击任意位置 - 就会出现TermsVC!

在以前的 ios 版本上工作正常。

【问题讨论】:

它最初没有被破坏。 iOS 13 更改了模式的默认呈现方式。不要与之抗争,拥抱它。 您应该做的第一件事是为您的应用添加适当的启动屏幕故事板,以消除屏幕顶部和底部的黑条。 不相关,但无需检查 iOS 13 即可将演示样式设置为全屏。该代码在早期版本的 iOS 上也有效。 @maddy 我想你最好把它作为一个被接受的答案,谢谢你的贡献。 【参考方案1】:

尝试删除它

 if (@available(iOS 13.0, *)) 
     [termsVC setModalPresentationStyle: UIModalPresentationFullScreen];
  

然后添加这个

  termsVC.modalPresentationStyle = UIModalPresentationCustom;

这消除了 iOS 13 演示文稿的古怪

【讨论】:

我尝试了 *** 的多个答案,但只有这个答案完美。

以上是关于iOS 13.1 Objective-C ModalPresentation 全屏的主要内容,如果未能解决你的问题,请参考以下文章

SVG 动画在 Safari 13.1 (Mac OS & IOS) 中遇到问题

在 Xcode 13.1 和 iOS 15 上测试 Unity 游戏时的奇怪行为

ios 13.1无法将文件保存到App Directory

Gradle Plugin v0.13.1 后重复的 Zip 条目

软件绘图(高效绘图 13.1)

Xcode 13.1 卡在 Apple M1 Pro 上安装模拟器