在iOS 13更新中,当我在prefersLargeTitles = true
上安装UINavigationBar
并执行强制推送时,我仍然无法解决一个烦人的错误。
另外,即使我不确定100%是否与之相关,我的视图控制器也嵌入了一个集合视图。
无论如何,我正在谈论的错误/故障如下:
基本上,该文本没有像我推动时所期望的那样动画,并且一直停留在那里直到出现新屏幕。有小费吗?谢谢
答案 0 :(得分:8)
我有同样的问题。尝试将第一个VC的navigationItem.largeTitleDisplayMode
设置为.always
,然后将第二个VC的.never
设置为,同时 prefersLargeTitles = true
都 >案件。
原因是从Apple Doc撰写的:
如果导航栏的preferredsLargeTitles属性为false,则此属性无效,并且导航项的标题始终显示为小标题。
这是造成动画故障的原因,而不仅仅是iOS13的错误,在iOS12 / 11上已经存在相反的情况(从第二个VC退回到第一个VC时发生动画故障)。< / p>
我写了一篇文章,解释了更多有关此的内容: https://www.morningswiftui.com/blog/fix-large-title-animation-on-ios13
答案 1 :(得分:0)
尝试在largeTitleDisplayMode
方法内设置viewWillAppear()
参数。
对于基本VC,将其设置为.always
,在目标VC中,将其设置为.never
BASE VC
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationItem.largeTitleDisplayMode = .always
}
DESTINATION VC
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationItem.largeTitleDisplayMode = .never
}
答案 2 :(得分:-1)
到目前为止,建议的解决方案对我不起作用。因此,我最终使用了以下解决方法。
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) title = "Random title" }
override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) title = nil }