UINavigationController не отображает элементы UINavigationBar на iPad - PullRequest
1 голос
/ 07 июля 2010

У меня очень странная проблема с UINavigationController. Я нашел очень похожий вопрос здесь:
UINavigationController не отображает элементы UINavigationBar

но решение было связано с тем, что парень добавил категорию в NSMutableArray, а я ничего такого не делаю.

Короче говоря, проблема в следующем: у меня есть контроллер навигации, и я помещаю на него несколько контроллеров представления. Затем, когда нажимается кнопка «назад», контроллер представления отключается, но соответствующий элемент навигации - нет. Если я снова нажму, то элемент навигации всплывет.

Кроме того, это происходит только при использовании кнопки «Назад» на панели навигации контроллера навигации. Если я вызываю popViewController явно (например, при нажатии кнопки), он работает как положено.

И это происходит только на моем iPad с операционной системой 3.2, но не на iPod Touch с операционной системой 3.0 или на симуляторе.

Я пытался изолировать проблему в отдельном проекте от остальной части моего приложения, чтобы я мог поэкспериментировать с ним, но не могу воспроизвести его, хотя это происходит в 100% случаев на определенных видах в моем приложении.

Я знаю, что этой информации недостаточно, чтобы получить конкретный ответ, но я просто хотел узнать, слышал ли кто-нибудь когда-нибудь о контроллере навигации, который не выдает навигационные элементы, как ожидалось, просто чтобы я мог иметь некоторое представление о том, где искать следующий.

Вот пример кода, который я использую для продвижения контроллера представления, он довольно прост, я не пытаюсь сделать с ним ничего особенного:

// pushing a view controller from a button press (set up with interface builder)
- (IBAction) tappedExtras
{
    ExtrasViewController *controller = [[ExtrasViewController alloc] initWithNibName:@"ExtrasViewController" bundle:nil];

    [self.navigationController pushViewController:controller animated:YES];

    [controller release];
}

примечание: в этом примере я использую пользовательский класс контроллера представления с именем ExtrasViewController, но проблема возникла с любым видом контроллера представления, который я пробовал.

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

- (IBAction) cancelChanges
{
    userCancelled = YES;
    [self.navigationController popViewControllerAnimated:YES];
}

это работает отлично (явно отображает контроллер представления), но на точно таком же контроллере представления, если вместо нажатия кнопки, настроенной с помощью построителя интерфейса, нажать кнопку «Назад» на панели навигации, элемент навигации будет отображаться неправильно.

1 Ответ

1 голос
/ 07 июля 2010

У меня возникла та же проблема с навигацией, которая существует после всплывающего контроллера третьего уровня. Проблема появляется только в альбомной ориентации на iPad. Нет проблем на iPhone (3.1.3 и 4.0). Конечно, на симуляторе все нормально.

...