我在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
}
答案 0 :(得分:0)
尝试一下,我不确定,但是可能会起作用
DispatchQueue.main.async {
self.navigationController?.popViewController(animated: true)
}
答案 1 :(得分:0)
在覆盖viewDidDisappear(_ animated: Bool)
时,您呼叫super.viewWillAppear(animated)
。您可能现在已经知道,应该改为致电super.viewDidDisappear(animated)
。您更正后的代码应为:
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
navigationController?.isNavigationBarHidden = false
}