Панель навигации установлена ​​как невидимая, но при нажатии кнопки «Назад» она появляется - PullRequest
1 голос
/ 22 марта 2012

Как видно из заголовка, корневым представлением является мой контроллер навигации, и оно установлено как невидимое, что и происходит при запуске.Однако, если я помещаю представление в стек и затем выскакиваю его, появляется панель навигации.

Есть какие-нибудь подсказки, почему и как исправить ситуацию?

1 Ответ

1 голос
/ 22 марта 2012

Вы должны скрывать это каждый раз, когда view вашего контроллера появляется (или исчезает) на экране. Это необходимо, так как бар поддерживает состояние между различными операциями push / pop. Например, если вы установили его скрытым в viewDidLoad в первом контроллере, а во втором вы установите его видимым, то, когда вы открываете второй контроллер, панель сохраняет последнее установленное вами состояние.

Например, переопределить методы viewWillAppear и viewWillDisappear и скрыть / показать панель там.

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

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