навигационная кнопка панели управления отсутствует в iOS 5 - PullRequest
2 голосов
/ 16 ноября 2011

Я обновился до XCode 4.2. Когда мое приложение запускается в симуляторе iOS 4.0, панель навигации отображается в нескольких представлениях, которые помещаются в нее. Когда приложение запускается в симуляторе iOS 5.0 и на устройстве с iOS 5.0, панель навигации исчезает во всех представлениях, и представления таблиц перемещаются вверх, чтобы заполнить это пространство. Контроллер навигации создается с использованием следующего кода:

navigationController = [[UINavigationController alloc] initWithRootViewController:swViewController];

и представления помещаются в навигационный контроллер следующим образом:

    UIBarButtonItem *backButtonItem       = [[[UIBarButtonItem alloc] initWithTitle:@"NextLevel" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease] ;
    self.navigationItem.backBarButtonItem = backButtonItem;
    [self.navigationController pushViewController:self.listController animated:YES];

Навигационный контроллер добавляется в окно через:

[window addSubview:self.navigationController.view];

Обновление 1 - похоже, панель навигации по умолчанию в iOS 5 скрыта, поэтому я добавил

  [[self navigationController] setNavigationBarHidden:NO animated:YES];

и теперь я вижу панель навигации, но нет кнопки возврата, как указано в backButtonItem.

Обновление 2 - я также установил заголовок navigationController, но он также не отображается.

         self.navigationController.title       = @"Title";

Что-то отсутствует или необходимо для того, чтобы панель навигации отображалась вверху в iOS 5.0?

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

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

hide_nav_bar

 - (void) viewWillAppear:(BOOL)animated
 {
     [self.navigationController setNavigationBarHidden:YES animated:animated];
     [super viewWillAppear:animated];
 }

Как только я закомментировал этот код, тогдакнопка назад появилась.

1 голос
/ 16 ноября 2011

Не на 100% понятно, что не так.В подобных случаях (работает на более старой iOS, перерывы при обновлении) вы, вероятно, все время делали что-то не так, но это просто случалось, что работало на более старой ОС.Свойство rootViewController вместо addSubview: call в старом стиле.Другими словами,

window.rootViewController = self.navigationController;

Посмотрите, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...