2016-09-01 3 views
1

То, что я пытаюсь установить ViewController (корень) с NavigationController, который будет соединяться с тремя ViewController.Как я могу скрыть панель навигации определенного контроллера просмотра?

2 из связанных ViewController должны иметь NavigationBar в верхней части каждого экрана. Другой не должен иметь Navigation bar. Кроме того, корень View Controller не должен иметь Navigation bar.

Я скрываю NavigationBar на корню View Controller следующим образом:

override func viewWillAppear(animated: Bool) { 
    self.navigationController?.setNavigationBarHidden(true, animated: animated) 
    super.viewWillAppear(animated) 
} 

override func viewWillDisappear(animated: Bool) { 
    self.navigationController?.setNavigationBarHidden(false, animated: animated) 
    super.viewWillDisappear(animated) 
} 

, но я не в состоянии скрыть Navigation bar на связанном View Controller, не должны иметь Navigation bar.

Я также пробовал на viewDidLoad функции View Controller, в котором я хочу, чтобы скрыть Navigation bar с помощью:

self.navigationController?.setNavigationBarHidden(false, animated: true) 

но Navigation bar все еще показано на рисунке.

Как скрыть Navigation bar по конкретному View Controller?

Заранее благодарен!

+0

Чек ваш VC может быть не подключен на контроллер навигации –

+0

вы можете показать раскадровку сцены –

+0

@ Anbu.Karthik Нет, извините, но я не могу, потому что это проект для клиента, и он не хочет показывать экраны приложения. –

ответ

0

Вы делаете ошибку, в вопросе вы установили false в viewDidLoad, чтобы скрыть navigationBar, вам необходимо установить true вместо false, попробовать на viewDidAppear.

self.navigationController?.setNavigationBarHidden(true, animated: true) 
+0

«Панель навигации» все еще отображается. Я пробовал оба варианта раньше, но я только добавил один из них, чтобы не перенапрягать вопрос. –

+0

Попытайтесь скрыть 'navigationBar'like таким образом' self.navigationController? .navigationBar.hidden = true' и показать, как этот 'self.navigationController? .navigationBar.hidden = false' –

+0

Я попробовал это, как @shekharvishwakarma указал в его ответе, но он также не работает. Он просто скрывает заголовок панели навигации, но не кнопку «Назад» и остальную панель навигации. –

0

Попробуйте этот код в viewDidAppear: -

self.navigationController?.navigationBarHidden = true 
+0

Я предполагаю, что мне нужно добавить этот метод в класс View Controller элемента, который я не хочу иметь панель навигации, но он также не работает. Навигационная панель все еще отображается. –

2

Вы можете попробовать, как это: -

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

override func viewWillDisappear(animated: Bool) { 
    super.viewWillDisappear(animated) 
    self.navigationController!.navigationBarHidden = false 

} 
+0

Прошу прощения, но панель навигации все еще отображается. –

0

Использование ниже кода в методе viewDidAppear

self.navigationController?.setNavigationBarHidden(true, animated: true) 
Смежные вопросы