更改 Storybord 视图控制器时 iOS 13 中的黑屏

Posted

技术标签:

【中文标题】更改 Storybord 视图控制器时 iOS 13 中的黑屏【英文标题】:Black Screen in iOS 13 when change Storybord View Controller 【发布时间】:2019-11-22 12:17:14 【问题描述】:

ios 13 中,当我调用其他 StoryBoard 时,为 ViewController 充电时,我的视图上会出现黑屏。

我使用此代码调用新的 StoryBoard:

UIStoryboard *homeSB = [UIStoryboard storyboardWithName:SBNameHome bundle:nil];
UIViewController *homeVC = [homeSB instantiateInitialViewController];
homeVC.modalPresentationStyle = UIModalPresentationFullScreen;
homeVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

[self presentViewController:homeVC animated:YES completion:nil];

这个项目使用多个 StoryBoard,当我调用一个新的 StoryBoard 时失败。如果我用 Xib 构建一个新的 ViewController,不会出现黑屏,但是该项目是用多个 StoryBoard 而不是 Xib 构建的。 我认为这是由 iOS 13 中的新 SceneDelegate 引起的。

有什么想法吗?谢谢。

【问题讨论】:

你的homeVC是空的吗?我的意思是,由于暗模式和空视图控制器,您可能会遇到此问题 该应用程序已完全开发并在 iOS 12 及更早版本上完美运行,但在 iOS 13 上已停止运行。 【参考方案1】:

@Antonio Ureba

尝试演示风格

UIModalPresentationStyle.overFullScreen

【讨论】:

第一个 StoryBoard 看起来不错,但是当转到下一个 StoryBoard 时,视图正常显示,但在我的视图中出现黑屏。 @AntonioUreba 你可以试试去掉过渡风格的代码homeVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;【参考方案2】:

替换

homeVC.modalPresentationStyle = UIModalPresentationFullScreen;

homeVC.modalPresentationStyle = UIModalPresentationOverFullScreen;

【讨论】:

第一个 StoryBoard 看起来不错,但是当转到下一个 StoryBoard 时,视图正常显示,但在我的视图中出现黑屏。【参考方案3】:

尝试设置背景颜色, 我也面临着黑屏,但我通过更改背景颜色来修复它

view.backgroundColor = UIColor.white

【讨论】:

第一个 StoryBoard 看起来不错,但是当转到下一个 StoryBoard 时,视图正常显示,但在我的视图中出现黑屏。 尝试使用 ViewControllerClassGoHere.modalPresentationStyle = .fullScreen

以上是关于更改 Storybord 视图控制器时 iOS 13 中的黑屏的主要内容,如果未能解决你的问题,请参考以下文章

iOS 在呈现视图控制器时更改按钮文本

当被模态视图控制器覆盖时,iOS 6 视图控制器布局在方向更改后不会更新

使用 UINavigationController iOS 6 弹回初始视图控制器时方向更改

iOS - 在导航更改时停止视频

iOS - 每次显示的视图更改时回调

在运行时更改 iOS 13 中的根视图控制器