0

У меня есть ViewController с именем SourceViewController, который встроен в NavigationController.Set NavigationBar for Destination ViewController Only

SourceViewController от 0 до DestinationViewControllerUITableViewCell выбор.

Я хочу скрыть навигационную панель на 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, однако это пахнет по многим причинам: в основном DRYness, но также при возврате к SourceViewController происходит задержка в скрытии navigationBar, и это видно на долю секунды ,

Как решить эту проблему?

+0

Не могли бы вы проверить ответ на этот вопрос ?? http://stackoverflow.com/questions/845583/iphone-hide-navigation-bar-only-on-first-page –

ответ

0

Я думаю, что это сработает, скрывая панель навигации. перед появлением/исчезновением представления.

override func viewWillAppear(animated: Bool) { 
    navigationController?.navigationBarHidden = true 
    super.viewWillAppear(animated) 
} 


override func viewWillDisappear(animated: Bool) { 
    navigationController?.navigationBarHidden = true 
    super.viewWillDisappear(animated) 
} 
0

Проверить жизненный цикл ViewController Looking to understand the iOS UIViewController lifecycle. Когда вы запустите программу viewDidLoad вызывается и все в порядке, но когда вы возвращаетесь из detailController, viewDidLoad не вызывается, просто измените эту строку (self.navigationController? .navigationBar.hidden = true) в viewWillApear, и все должно быть в порядке ,

Смежные вопросы