有的時(shí)候碰到detail頁(yè)需要隱藏navigation bar的需求. 此時(shí)可用setNavigationBarHidden方法來(lái)設(shè)置. 如下:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
用setNavigationBarHidden方法時(shí)push和pop操作過(guò)度平滑. 但是發(fā)現(xiàn)側(cè)滑退出功能已無(wú)效.
此時(shí)我們可以重寫如下方法gestureRecognizerShouldBegin.
- 在class上加上
UIGestureRecognizerDelegate. - 設(shè)置
navigationController?.interactivePopGestureRecognizer?.delegate = self - 增加如下函數(shù):
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
if(navigationController!.viewControllers.count > 1){
return true
}
return false
}