在iOS13以及Xcode11中,viewcontroller的modalPresentationStyle属性由之前延续了很久的fullScreen方式变成了automatic(如下图):
据说是为了UI设计上的美观(配合刘海屏)以及交互上的方便(直接可用下滑手势关闭),但这也会导致一些遗留问题,比如苹果未曾更新相应的自定义转场动画的用法,继续使用之前的方法会导致黑屏等等。
所以如果在使用Xcode11开发时遇到设计或者动画上的bug的话,可以考虑强制把转场的展示方式变为fullScreen:
let vc = UIViewController()
vc.modalPresentationStyle = .fullScreen //或 .overFullScreen
self.present(vc, animated: true, completion: nil)
ps:storyboard上变全屏操作:
选中跳转的segue(即下图中的箭头)
参考文档:
developer.apple.com/documentati…
注:
苹果经常更改默认设置,大家在iOS和Xcode版本更新后,遇到奇形怪状的问题不要慌,可能只是某个默认设置要改一下,一句代码的事情。