带有新的ViewController演示样式的可能的iOS13或Xcode错误

时间:2019-11-19 16:57:50

标签: swift uinavigationbar uibarbuttonitem uinavigationitem

我在权利NavigationBarButton的边距上遇到问题。

我将其简化为Xcode 11中的一个新的单视图项目。我有一个启动屏幕情节提要和一个主情节提要。

主情节提要具有一个Initial ViewController,该按钮带有一个指向NavigationController的按钮和一个生成的ViewController

工具栏上有两个按钮,如下所示:

enter image description here

如果我随后使用带有两个条形按钮的NavigationController来选择另一个ViewController,则看起来像这样:

enter image description here

为什么在第二个ViewController中,右键单击边缘而不是边缘?

更新:这似乎是iOS 13中新的演示文稿样式的问题。如果我将第一个导航控制器的演示文稿样式更改为全屏,则第二个控制器现在可以正确显示(“项目”按钮已与页边距正确对齐)。

这可能是iOS或Xcode中的错误吗?

1 个答案:

答案 0 :(得分:0)

是的,这是iOS 13中的错误

解决方案是强制布局,as explained on the Apple forums由用户DaleOne:

override func viewWillAppear(_ animated: Bool) {
     super.viewWillAppear(animated)
     if #available(iOS 13.0, *) {
          navigationController?.navigationBar.setNeedsLayout()
     }
}