2009-04-25 13 views
4

Eine sehr einfache Frage: Meine iPhone App hat eine Schaltfläche in MainWindow.xib. Wenn ich diesen Knopf drücke, sollte eine neue Ansicht geladen werden. Diese Ansicht enthält einen netten Navigationscontroller. Wie kann ich das machen?Klicken Sie auf die Schaltfläche und laden Navigationscontroller

Alle Informationen, die ich gefunden habe, sind über Apps, die direkt von einem Navigationscontroller gestartet werden. Ich muss den Nav-Controller nach einem Klick laden.

Vielen Dank!

Antwort

2

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]; 
} 
Verwandte Themen