Как скрыться/запретить только первый uinavigationbar?

Я блуждал, как скрыться / удаляют / отключают только основную или первую панель навигации в контроллере навигации так, чтобы я мог поместить изображение в целом фоновый экран, но я не мог найти решение.

Действительно пробовал скрывают titleview в viewdidLoad основного контроллера навигации, но не работал. Испытанное использование navigationBarHidden, но это скрывает целую панель навигации для следующей стопки контроллера.

Так, я не уверен, как сделать это. Чтобы дать Вам пример, я хотел бы иметь что-то вроде этого приложение - Турнир по гольфу Masters - http://appshopper.com/sports/the-masters-golf-tournament.

При рассмотрении Экрана 1 он не имеет никакой военно-морской панели наверху, но когда Вы коснетесь любых опций, он продвинет к новому контроллеру представления и иметь военно-морскую панель, появляются как на Экране 3,4 и 5.

Надежда любой мог помочь мне с этим. Большое спасибо!

11
задан Jack B. 31 July 2010 в 04:15
поделиться

1 ответ

В большинстве моих приложений у меня есть пользовательский класс UIViewController, на основе которого я создаю все остальные пользовательские контроллеры. В некоторых из них я добавил в базовый класс метод типа navigationBarInitiallyHidden, который другие классы могут переопределять. Результат по умолчанию зависит от характера приложения.

В делегате контроллера навигации, когда показывается контроллер, реализующий этот метод, делегат скрывает или показывает контроллер навигации соответственно. Поскольку я анимирую скрытие или показ, я проверяю текущее состояние и ничего не делаю, если изменения не требуются.

Вы можете сделать что-то более простое в своем методе делегата. Если отображаемый контроллер является корневым, скрыть панель навигации, в противном случае показать ее, если она скрыта.

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
  if ( viewController == rootController ) {
    [navigationController setNavigationBarHidden:YES animated:animated];
  } else if ( [navigationController isNavigationBarHidden] ) {
    [navigationController setNavigationBarHidden:NO animated:animated];
  }
}
18
ответ дан 3 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: