Я обновился до 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?