2009-04-25 2 views
4

Очень простой вопрос: у моего iPhone-приложения есть кнопка в MainWindow.xib. Когда я нажимаю эту кнопку, новый режим должен загружаться. Этот вид будет содержать хороший навигационный контроллер. Как я могу это сделать?Нажмите кнопку и загрузите навигационный контроллер

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

Большое спасибо!

ответ

2

Другой способ пойти об этом, чтобы просто скрыть панель навигации в корневом контроллере:

- (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]; 
}