Ben*_*nnX 8 animation uiviewcontroller uinavigationcontroller ios
我们有两个UIViewController用UINavigationController.
在viewWillAppear(_ animated: Bool)我们做的第一个介绍VC里面:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationItem.largeTitleDisplayMode = .always
}
....
Run Code Online (Sandbox Code Playgroud)
在第二个VC的内部我们拒绝了内部的行为viewWillAppear(_ animated: Bool):
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = false
}
...
Run Code Online (Sandbox Code Playgroud)
到第二个VC的过渡动画是平滑的,而点击自动生成的后退按钮会导致导航控制器标题创建一个奇怪的jump to large title而不是正常的grow to large title动画,就像在消息应用程序中那样.
如果我点击标签栏图标作为"后退"操作,它会执行正确的过渡动画.
知道什么可能导致该问题或我如何解决它?
小智 16
在第二个视图控制器上设置largeTitleDisplayMode为.never
您将不需要设置prefersLargeTitles为false.
为了澄清这里的内容,您需要largeTitleDisplayMode直接设置navigationItem视图控制器,而不是导航控制器!
self.navigationItem.largeTitleDisplayMode = .never // This fixes the issue
self.navigationController?.navigationItem.largeTitleDisplayMode = .never // This doesn't work / Title will stay large
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |