【发布时间】:2018-08-15 10:58:07
【问题描述】:
我在 imageView 上添加了一个点击手势识别器,所以当用户点击下面的图片时会调用下面的函数。
@objc func handleTap(_ sender: UITapGestureRecognizer) {
self.navigationController?.popViewController(animated: true)
}
当我推送到细节视图控制器动画看起来很好并且工作流畅,但是当我使用上面的方法来 popViewController(animated: true) 动画不是那么流畅,甚至可能会冻结一秒钟。
我还使用 viewWillAppear 和 viewWillDisappear 方法在细节视图控制器中隐藏导航栏。我已经读到这可能会导致动画运行缓慢,但仍然无法找到解决此问题的答案。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.isNavigationBarHidden = true
}
override func viewDidDisappear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.isNavigationBarHidden = false
}
【问题讨论】:
-
分配
navigationController?.isNavigationBarHidden对性能的影响不大。我的应用程序可以顺利完成许多这样的任务。一些影响您的 UI 的工作将启动或结束相机会话、初始化 GMSMapView 等。您能否使用您的 View Controller 类的完整代码更新帖子,以便其他人可以重现您的错误并找到适合您情况的更好的解决方案。 -
这很奇怪,因为当我为 popViewController 使用自定义动画时,因此将默认动画设置为 false 一切都可以正常使用自定义动画。
标签: ios swift uinavigationcontroller uinavigationbar