iOS - установите UIToolBarItem на UINavigationController
-
27-10-2019 - |
Вопрос
Я вытаскиваю элемент панели инструментов в раскадровке и устанавливаю его на своем навигационном контроллере, но когда я запускаю свой код, его там нет, что-то мне не хватает?
РЕДАКТИРОВАТЬ:
Пытался установить это в коде также в моем методе viewDidLoad:
родовое словоТоже не сработает.
Вот как это устроено в моей раскадровке:
< sizesUPDATE:
Только что нашел свою проблему.В моем коде контроллера, когда я обновляю его содержимое, я меняю элемент правой кнопки панели для счетчика и никогда не возвращаю его к тому, что было раньше.
Решение
UINavigationController
уже имеет встроенную панель инструментов. У него есть свойство toolBarHidden
, для которого по умолчанию установлено значение YES
, поэтому оно обычно не отображается. Если вы используете раскадровку, вы можете легко сделать встроенную нижнюю панель инструментов видимой, установив флажок «Показывает панель инструментов» в инспекторе, когда выбран контроллер навигации.
См. документацию по UINavigationController здесь подробнее.
РЕДАКТИРОВАТЬ:
Хорошо, похоже, что вы пытаетесь добавить правую кнопку в код UINavigationItem
вашего контроллера представления. Чтобы сделать это в раскадровке, перетащите «Элемент кнопки панели» из библиотеки объектов в элемент навигации в ViewController. Затем вы можете установить заголовок / стиль / и т. Д. Элемента кнопки панели. Если при запуске приложения ничего не отображается, убедитесь, что ViewController правильно подключен к контроллеру навигации.
Также убедитесь, что вы добавляете элемент кнопки панели в элемент навигации контроллера представления, а НЕ в сам контроллер представления. Вот как установка должна выглядеть в вашей раскадровке:
Другие советы
Чтобы добавить элемент на панель навигации, необходимо добавить общий код кода в элемент навигации Item , содержащийся в контроллере представления.Перейдите к раскадровке, найдите нужный VC и найдите элемент навигации (он находится в иерархии, показанной в «сцене» контроллера навигации).Просто перетащите элемент кнопки панели в эту иерархию под элементом навигации или прямо на панель навигации на дисплее визуального построителя.
Контроллер навигации смотрит на элемент навигации вашего виртуального канала только тогда, когда этот виртуальный канал помещен в стек;следовательно, изменение навигационного элемента VC в кодовом коде не имеет никакого эффекта.
(Я делал это программно раньше, но у меня нет кода с собой, поэтому, возможно, я добавлю его позже ...)