Еще один способ сделать это - просто скрыть панель навигации в вашем корневом контроллере:
- (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];
}