Ein anderer Weg, um dies zu realisieren ist die Navigationsleiste in Ihren Root-Controller einfach auszuzublenden:
- (void) viewDidLoad {
...
if (![self.navigationController isNavigationBarHidden])
[self.navigationController setNavigationBarHidden:YES animated:NO];
...
}
Auf diese Weise haben Sie einen schönen, sauberen Root-Controller ohne Navigationsleiste im Weg.
Wenn Sie auf eine Schaltfläche in Ihrem Root-Controller klicken Sie einfach in einer neuen Ansicht drücken und un-Ausblenden der Navigationsleiste:
- (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];
}
Wenn Sie etwas Benachrichtigung oder eine andere Aktion, die Sie zurückbringt der Root-View-Controller, nur die Benachrichtigungsleiste wieder ausblenden:
- (void) viewWillAppear:(BOOL)animated {
if (![self.navigationController isNavigationBarHidden])
[self.navigationController setNavigationBarHidden:YES animated:YES];
[super viewWillAppear:animated];
}