Нажмите кнопку и загрузите контроллер навигации

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

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

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


person Community    schedule 25.04.2009    source источник


Ответы (1)


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

- (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];
}
person Alex Reynolds    schedule 25.04.2009