我有一个View Controller,它是第二个视图控制器,需要一个导航栏。第一个是控制器,它不需要导航栏,第三个视图控制器需要一个导航栏。
根据堆栈第3个视图控制器将不是堆栈顶部。
我在第二视图控制器中实现了这些方法:
arr = [3] * 20
如果使用override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if self.navigationController?.navigationBarHidden == true{
self.navigationController?.navigationBarHidden = false
}
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
self.navigationController?.navigationBar.tintColor = Quikr_Util.colorWithHexString("#0083cb")
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
if self.navigationController?.navigationBarHidden == false{
self.navigationController?.navigationBarHidden = true
}
}
小节按钮从第3个视图控制器返回到第2个视图控制器,那么工作正常。
这意味着从第3个滑动到第2个但在两者之间释放,因此它转到第3个视图控制器而不是第二个。
隐藏和取消隐藏视图导航栏的最佳方式可能是什么。
其次,滑动如何工作,滑动时会调用哪些函数?
答案 0 :(得分:0)
第一个问题
要隐藏和显示导航控制器,请在第二和第三视图控制器中,您可以使用:
隐藏:
navigationController?.setNavigationBarHidden(true, animated: false)
显示:
navigationController?.setNavigationBarHidden(false, animated: false)
确实没有必要检查它是否隐藏。
对于第二个问题,您可以使用UIGestureRecognizer
编辑:
为了清楚起见,而不是隐藏并显示在同一个文件中,隐藏并显示在viewDidAppear()
所需的快速文件中