Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 新的ViewController演示样式可能存在iOS13或Xcode错误_Swift_Uinavigationbar_Uibarbuttonitem_Uinavigationitem - Fatal编程技术网

Swift 新的ViewController演示样式可能存在iOS13或Xcode错误

Swift 新的ViewController演示样式可能存在iOS13或Xcode错误,swift,uinavigationbar,uibarbuttonitem,uinavigationitem,Swift,Uinavigationbar,Uibarbuttonitem,Uinavigationitem,我的右导航按钮的边距有问题 我已经在Xcode 11中将其提炼为一个新的单视图项目。我有一个启动屏幕故事板和一个主故事板 主情节提要有一个初始视图控制器,带有一个指向导航控制器的按钮和一个生成的视图控制器 工具栏上有两个按钮,如下所示: 如果我接着使用带有两个条形按钮的ViewController切换到另一个NavigationController,它看起来是这样的: 为什么在第二个ViewController中,右按钮紧靠边缘而不是边缘 更新:这似乎是iOS 13中新的演示样式的问题。如果

我的右
导航按钮的边距有问题

我已经在Xcode 11中将其提炼为一个新的单视图项目。我有一个启动屏幕故事板和一个主故事板

主情节提要有一个
初始视图控制器
,带有一个指向
导航控制器
的按钮和一个生成的
视图控制器

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

如果我接着使用带有两个条形按钮的
ViewController
切换到另一个
NavigationController
,它看起来是这样的:

为什么在第二个
ViewController
中,右按钮紧靠边缘而不是边缘

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

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

是的,这是iOS 13中的错误 解决方案是通过用户强制布局:

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

您的约束看起来像什么?你有任何相关的代码吗?我没有创建任何约束(我不认为你可以在按钮栏项目上这样做)。我也不需要写任何代码来演示这个问题。如果有人想尝试这个项目,你能帮我把它翻译成objective C吗?我不知道objective-C,除此之外,Swift已经存在了一段时间……我以不同的方式解决了这个问题,发现它不是一个bug,而是界面风格改变的结果,并设法从不同的Swift解决方案中破解了一些objC。无论如何,谢谢你。