iOS - установить UIToolBarItem на UINavigationController - PullRequest
1 голос
/ 17 февраля 2012

Я перетаскиваю панель инструментов в раскадровке и устанавливаю ее на своем контроллере навигации, но когда я запускаю свой код, его там нет, что-то мне не хватает?

EDIT:

Пробовал установить его в коде, а также в моем методе viewDidLoad:

UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Map" style:UIBarButtonItemStyleBordered target:self action:@selector(viewMap)];
self.navigationItem.rightBarButtonItem = rightBarButton;

Не сработает.

Вот как это настроено в моей раскадровке:

enter image description here

UPDATE:

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

Ответы [ 2 ]

4 голосов
/ 17 февраля 2012

UINavigationController уже имеет встроенную панель инструментов. У нее есть свойство toolBarHidden, которое по умолчанию установлено на YES, поэтому его обычно не видно. Если вы используете раскадровку, вы можете легко сделать видимой встроенную нижнюю панель инструментов, установив флажок «Показывает панель инструментов» в инспекторе, когда выбран контроллер навигации.

Подробнее см. Документацию UINavigationController здесь .

EDIT:

Хорошо, похоже, что вы пытаетесь добавить правую кнопку в UINavigationItem контроллера вашего представления. Чтобы сделать это в раскадровке, перетащите «Элемент панели кнопок» из библиотеки объектов на элемент навигации в вашем ViewController. Затем вы можете установить заголовок / стиль / и т.д. элемента панели кнопок. Если при запуске приложения ничего не отображается, убедитесь, что ваш ViewController правильно подключен с переходом к контроллеру навигации.

Также убедитесь, что вы добавляете элемент панели кнопок к элементу навигации контроллера представления, а НЕ к самому контроллеру представления. Вот как должна выглядеть установка в вашей раскадровке:

enter image description here

1 голос
/ 18 февраля 2012

Чтобы добавить элемент на панель навигации, вам нужно добавить Bar Button Item к элементу навигации Элемент , содержащийся в контроллере вида.Перейдите к раскадровке, найдите правильный VC и найдите элемент навигации (он находится в иерархии, показанной в «сцене» контроллера навигации).Просто перетащите элемент панели кнопок в эту иерархию под элементом навигации или прямо на панель навигации на дисплее визуального компоновщика.

Контроллер навигации просматривает элемент навигации вашего ВК только тогда, когда этот ВК помещается в стек;следовательно, изменение элемента навигации VC в viewDidLoad не имеет никакого эффекта.

(я делал это программно раньше, но у меня нет кода со мной, так что, возможно, я будудобавить это позже ...)

...