UINavigationBar отказывается показывать в Modal View Controller - PullRequest
3 голосов
/ 11 сентября 2010

Я загружаю контроллер модального представления, используя следующий код в моем RootViewController:

[self.navigationController presentModalViewController:accountViewController animated:YES];

В xib-файле accountViewController я установил панель навигации.Мои MainWindow.xib и RootViewController.xib также имеют правильную настройку панели навигации.Кроме того, мой представитель приложения правильно настроил контроллер навигации (я полагаю):

UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navigationController = aNavigationController;

[window addSubview:navigationController.view];

Однако, когда я загружаю свой accountViewController, UINavigationBar нигде не видно.Разве невозможно показать UINavigationBar в модальном представлении?Я планировал использовать его, чтобы скрыть кнопку «Назад» и добавить правую кнопку ...

Ответы [ 3 ]

6 голосов
/ 11 сентября 2010

ответ Ша правильный, но я даю свой собственный ответ, чтобы расширить его с помощью примера кода, чтобы прояснить ситуацию.

Вы, вероятно, хотите что-то вроде:

- (void)showAccountViewController
{
    AccountViewController* accountViewController = [[AccountViewController alloc] initWithNibName:@"AccountView" bundle:nil];
    ...
    // Initialize properties of accountViewController
    ...
    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:accountViewController];
    [self.navigationController presentModalViewController:navController animated:YES];
    [navController release];
    [accountViewController release];
}
1 голос
/ 11 сентября 2010

Вам нужно нажать не viewController, а navigationController, внутри которого есть viewController.

0 голосов
/ 06 марта 2015

Вы также можете установить стиль представления в Инспекторе атрибутов на «Текущий контекст». Модальный вид не распространяется на панель навигации.

...