很多时候首页导航需要自定义而二级界面导航需要保留.这种情况下右滑手势返回上一级自定义导航界面就会出现留白情况
自用解决方案如下:
在一级界面父类中设置self为导航控制器的代理,实现willShow viewController代理方法,控制导航栏隐藏和显示,使用这种方式可以解决滑动返回手势留白问题
deinit {
self.navigationController?.delegate = nil
}
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.delegate = self
}
extension CSBaseMainViewController : UINavigationControllerDelegate{
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
let isHome = viewController.isKind(of: self.classForCoder)
self.navigationController?.setNavigationBarHidden(isHome, animated: true)
}
}