2010-03-21 2 views
6

У меня есть сценарий, когда мой UINavigationController пропускает кнопку «Назад» (левая кнопка), но нажатие левой кнопки по-прежнему работает.UINavigationController Back Button не отображается, но работает

Я нашел похожую проблему, размещенную здесь: UINavigationController's back button disappears? , которая была разрешена, не указывая заголовок на @ "", но это не моя проблема. Существуют ли другие сценарии, которые могут вызвать такое поведение?

UPDATE:

В случае, если это важно здесь моя точка зрения иерархии: Мой MainWindow содержит UINavigationView, который загружает первый UIViewController (это представление содержит карту). При нажатии на кнопку аннотации аксессуаров загружается UITableViewController. В этом представлении должна быть кнопка «Назад».

Спасибо.

+0

Возможно, свойство 'hidden' кнопки« Назад »установлено на« НЕТ »?? –

+0

вместо этого назовите это фактическое имя: @ «Мой VC», чтобы точно проверить. Также это предыдущий VC не новый, который вы должны дать название (на всякий случай) –

+0

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

ответ

13

Oh Man! Хорошо, я нашел ответ здесь: http://www.iphonedevsdk.com/forum/iphone-sdk-development/35633-back-button-missing-navigation-bar.html

Оказалось, что мой первый вид (тот, с картой на нем) не имел набора заголовков (на самом деле я скрываю панель навигации, потому что я не хочу показать это). Даже если название WAS установлено на более позднем этапе, SDK, похоже, не заботится. Я до сих пор не понимаю 100%, почему я мог использовать этот район, чтобы заставить его работать.

Так что, даже если я скрою первую навигационную панель, мне все равно нужно установить ее название.

Это было!

Спасибо всем, кто пытался помочь.

+0

Спасибо за это. У меня есть сегментированный элемент управления вместо заголовка, и все же мне нужно было установить заголовок вида, чтобы увидеть кнопку «Назад» на следующем представлении. Nevermind никто не может видеть название за сегментированным контролем. – dchakarov

+0

Недостающее название - преступник. Например, в viewDidLoad просто добавьте \t self.title = @ "Home"; и появится кнопка. –

0

Вы переопределяете элемент кнопки «Назад» - не то же самое, что левая кнопка - в любом месте вашего кода? т.е .:

self.navigationItem.backBarButtonItem = ... 

ли параметр в hidesBackButton недвижимость где-нибудь? то есть:

self.navigationItem.hidesBackButton = YES; 
+0

Я не делаю ни в своем коде. Я не вижу ничего в IB, который выглядит подозрительным (хотя я, возможно, его не замечаю). На мой взгляд, leftBarButton и backBarButton равны нулю. Вначале в моем проекте я программно создал еще одну левую панель, но с тех пор удалил ее и все ссылки на нее. Может ли еще сохраниться какой-то артефакт, который я не вижу? – cagreen

Смежные вопросы