it-roy-ru.com

Скрыть панель навигации

У меня 3 просмотра. (скажем 1-й, 2-й, 3-й). Я выдвинул 2-й вид (который имеет метод просмотра нагрузки) на 1-й. Во втором представлении я создал третий, используя initWithFrame (который унаследован от UIWebView). Во втором виде я написал self.view = третий вид. 

Теперь я хочу скрыть панель навигации 2-го представления в 3-м представлении (то есть, когда пользователь касается экрана 3-го представления, т.е. UIWebView). Я получил распознавание касания с помощью жеста, но не могу скрыть панель навигации. 

3-й вид не поддерживает self.navigationController. И если я создаю объект второго вида в третьем, он не скрывает панель навигации. Кто-нибудь может мне помочь?

17
Kuldip

Хорошо. Поэтому вам нужно установить панель навигации скрытой сразу после создания контроллера навигации для этой вкладки. Вы не можете отрегулировать это после того, как вы нажмете на контроллер вида (насколько я знаю). 

Если вы хотите, чтобы в первом представлении не было навигационной панели вверху, используйте это в своем appDelegate, где вы изначально объявляете свои контроллеры навигации:

localNavigationController = [[UINavigationController alloc] initWithRootViewController:theViewController];
[localNavigationController setNavigationBarHidden:YES animated:YES];

Если вы хотите, чтобы представления после этого были скрыты, то вам нужен viewController для последующих представлений, и вам нужно будет добавить

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

прямо перед этим

[[self navigationController] pushViewController:theThirdViewController animated:YES];

Надеюсь это поможет.

32
Nabou

Реализуйте это:

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

перед назначением 3-го вида. это self.view = третий вид

17
Sisu

Обратите внимание, что код должен быть добавлен в метод viewWillAppear

-(void) viewWillAppear:(BOOL)animated
{
      self.navigationController.navigationBar.hidden = YES;
}
0
KeithTheBiped