1

У меня есть UIViewController (давайте назовем его VC0) в UINavigationController. VC0 использует UISearchDisplayController для отображения результатов в UITableView от поиска. После того, как пользователь выберет ячейку таблицы из результатов поиска, она подталкивает другую UIViewController (назовите ее VC1).Скрыть панель навигации в виде контроллере столкнула с UISearchDisplayController

В обоих VC0 и VC1, я поставил navigationBarHidden в YES. Однако, когда я выбираю ячейку таблицы и VC1 нажата, я до сих пор вижу навигационную панель сверху VC1 с обратной кнопкой на VC0.

Как я могу надолго скрыть навигационную панель в VC1?

Update:

Навигационная панель исчезает, если я ставлю следующую строку в viewDidAppear:, но она все еще видна, прежде чем он будет скрыт.

self.navigationController.navigationBarHidden = YES; 

Но если я положил его в viewDidLoad или viewWillAppear:, он не работает. Почему?

+0

Вы хотите скрыть панель навигации на обоих мониторах ViewControllers? –

+0

@VivekMolkar Да. Я могу скрыть его в VC0, но не в VC1. – Sudeep

+0

Как вы нажимаете VC1? толкнуть Segue? –

ответ

0

Простой ViewController как имя BaseViewController. и сделать ваши VC0 и VC1 производными от BaseViewController. и просто установите navigationBarHidden в YES в BaseViewController.

это применимо к VC0 и VC1 простой строкой кода.

  1. @interface BaseViewController : UIViewController

  2. @interface VC0 : BaseViewController

  3. @interface VC1 : BaseViewController

как этот

и метод BaseViewController в

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationController.navigationBarHidden=YES; 
} 
+0

Нет ли другого способа сделать это? Я бы предпочел не хотеть менять структуру контроллеров моего представления. – Sudeep

+1

, тогда вы должны написать свой 'self.navigationController.navigationBarHidden = YES;' в каждом режиме viewControllers ** viewWillAppear **. –

+0

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

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