可能带有新 ViewController 演示样式的 iOS13 或 Xcode 错误
Posted
技术标签:
【中文标题】可能带有新 ViewController 演示样式的 iOS13 或 Xcode 错误【英文标题】:Possible iOS13 or Xcode bug with new ViewController Presentation Style 【发布时间】:2020-03-15 06:42:58 【问题描述】:我在NavigationBarButton
的右侧边距方面遇到问题。
我在 Xcode 11 中将其提炼成一个全新的单视图项目。我有一个启动屏幕故事板和一个主故事板。
主情节提要有一个Initial ViewController
,带有一个指向NavigationController
的按钮和一个结果ViewController
。
工具栏有两个按钮,如下所示:
如果我随后使用带有两个条形按钮的ViewController
转到另一个NavigationController
,它看起来像这样:
为什么,在第二个ViewController
中,右键是靠边而不是靠边?
更新:这似乎是 ios 13 中新的演示样式的问题。如果我将第一个导航控制器演示样式更改为全屏,第二个控制器现在可以正确显示(项目按钮正确对齐到边距)。
这可能是 iOS 或 Xcode 中的错误吗?
【问题讨论】:
你的约束是什么样的?有相关代码吗? 我没有创建任何约束(我不认为你可以在按钮栏项目上这样做)。我也不需要写任何代码来演示这个问题。 如果有人想尝试这个项目,它在1drv.ms/u/s!ArrsM4oXrGGbp6J0p4_-YFr6ogXYeA?e=KhkZPL 【参考方案1】:是的,这是 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()
【讨论】:
你能帮我把它翻译成目标 C 吗? 我不知道 Objective-C,除了 Swift 已经有一段时间了...... 我以不同的方式解决了这个问题,发现这不是一个错误,而是界面风格改变的结果,并设法从不同的快速解决方法中破解了一些 objC。无论如何,谢谢。以上是关于可能带有新 ViewController 演示样式的 iOS13 或 Xcode 错误的主要内容,如果未能解决你的问题,请参考以下文章
单击tableview单元格行时如何推送新的viewcontroller?
带有后退按钮的 Tabbar Controller 到 ViewController
如何从 UIAlertcontroller 关闭模态 ViewController
在 ViewController 中使用带有外部 DataSource 和 UITableView 的自定义 UITableViewCell