Другой способ пойти об этом, чтобы просто скрыть панель навигации в корневом контроллере:
- (void) viewDidLoad {
...
if (![self.navigationController isNavigationBarHidden])
[self.navigationController setNavigationBarHidden:YES animated:NO];
...
}
Таким образом, у вас есть хороший, чистый корневой контроллер без каких-либо навигационной панели в пути.
При нажатии на кнопку в корневом контроллере, вы просто нажать на новый взгляд и снимите скрыть панель навигации:
- (IBAction) pushAnotherView:(id)sender {
AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherViewController" bundle:nil];
[self.navigationController pushViewController:anotherViewController animated:YES];
if ([self.navigationController isNavigationBarHidden])
[self.navigationController setNavigationBarHidden:NO animated:YES];
[anotherViewController release];
}
Если у вас есть уведомление или другое действие, которое приносит вам обратно контроллер корневого представления, просто скройте панель уведомлений еще раз:
- (void) viewWillAppear:(BOOL)animated {
if (![self.navigationController isNavigationBarHidden])
[self.navigationController setNavigationBarHidden:YES animated:YES];
[super viewWillAppear:animated];
}