我有一个称为SourceViewController
的ViewController,它嵌入在NavigationController中。
选择SourceViewController
后,DestinationViewController
会选择UITableViewCell
。
我想隐藏SourceViewController
上的导航栏,但在DestinationViewController
上显示它以显示“后退”按钮。
因此,在SourceViewController
中:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.hidden = true
}
在
DestinationViewController
中:覆盖func viewDidLoad(){
super.viewDidLoad()
self.navigationController?.navigationBar.hidden = false
}
但是,当我点击
DestinationViewController
中的“返回”以返回到SourceViewController
时,导航栏将再次出现在SourceViewController
中下一个“显而易见的”步骤是在
navigationBar.hidden = false
中的viewDidAppear
中设置SourceViewController
,但这有很多原因:干燥,但返回到SourceViewController
时,隐藏navigationBar
会有延迟,一瞬间可见。我该如何解决这个问题?
最佳答案
我认为这会起作用,隐藏导航栏。在出现/消失视图之前。
override func viewWillAppear(animated: Bool) {
navigationController?.navigationBarHidden = true
super.viewWillAppear(animated)
}
override func viewWillDisappear(animated: Bool) {
navigationController?.navigationBarHidden = true
super.viewWillDisappear(animated)
}