Нажмите кнопку и загрузите навигационный контроллер - PullRequest
4 голосов
/ 25 апреля 2009

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

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

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

1 Ответ

2 голосов
/ 25 апреля 2009

Еще один способ сделать это - просто скрыть панель навигации в вашем корневом контроллере:

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