UINavigation Controller скрывает навигационную панель - PullRequest
2 голосов
/ 20 января 2012

с использованием xcode 4.2 и iOS 5 и с навигационной панелью на корневом контроллере и четырьмя другими представлениями (включая представление UITable) все, что мне нужно, это скрыть навигационную панель в первом корневом контроллере представления и показать во всех других представлениях ...

Пробовал подписку

[self.navigationController setNavigationBarHidden:YES animated:animated];

Не повезло, есть идеи?

Ответы [ 2 ]

3 голосов
/ 21 января 2012

Используйте этот код в вашем корневом контроллере (или во всех ваших контроллерах представления, для которых вы хотите иметь скрытую панель навигации. Однако см. [1]), чтобы скрыть / показать панель навигации в соответствии с тем, к чему вы стремитесь:

- (void)viewDidLoad {
   ...
  [self.navigationController setNavigationBarHidden:YES animated:NO];
   ...
}

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

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

Это просто возможное решение. Вы можете оставить viewWillDisappear неопределенным в своих некорневых контроллерах и определить viewWillAppear в своем корневом контроллере ... как вы считаете, наиболее удобным для вас.

[1] Скрытие панели навигации в любом месте, кроме корневого контроллера, позволяет застрять в середине иерархии навигации. Кроме того, использование интуитивно понятной навигации в приложении для iOS не позволяет внезапно скрыть панель навигации для чего-либо, кроме корневого представления.)

1 голос
/ 09 октября 2014

Вы можете скрыть это, используя этот код

self.navigationController.navigationBar.hidden = YES;

Использовать этот код для загрузки действительно

...