2017-02-03 3 views
2

У меня есть контроллер входа в систему, который после успешного входа подталкивает моего пользователя к другому контроллеру представления (ViewControllerB). При этом ViewControllerB встроен в UINavigationController, который я уже отформатировал с помощью кнопки меню.iOS - Скрыть панель навигации только на одном экране?

Поскольку я использую push-сегу из контроллера входа в систему, этот сеанс заставляет мой UINavigationBar покрываться пустой навигационной панелью и кнопкой возврата (не круто). Тем не менее, я попытался скрыть навигационный контроллер от вида Войти контроллер со следующим кодом:

loginviewcontroller.m

- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 

Когда я делаю это, нежелательная панель навигации с помощью кнопки заднего покрытия моего другой nav bar удален! Отлично. Однако, когда я перехожу к другим экранам, моя панель навигации остается скрытой (и я хочу, чтобы она появилась, как только мой пользователь пропустил ее через ViewControllerB).

Я попытался использовать modal segue при успешном входе в систему, но, конечно, это не позволяет мне перейти на другие экраны с помощью segues при входе в систему.

Любая идея, как я могу это сделать?

ответ

1

Добавить это:

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
} 
1

Вы должны embedin UINavigationController с первого ViewController или вашего loginViewController и в этом ViewController скроешь панель навигации и для вашего следующего ViewController вы можете отобразить в Панель навигации. Это сработало для меня.

0

быстры 3

override func viewWillAppear(_ animated: Bool) { 

       //for hide navigation bar in current view 
    super.viewWillAppear(animated) 

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

override func viewWillDisappear(_ animated: Bool) { 

       //for unhide in navigation bar in next/previous view 
    super.viewWillDisappear(animated) 

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