Установить изображение в панели навигации в Swift

Pigpocket спросил: 03 февраля 2018 в 11:51 в: ios

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

Этот код загадочно работает, чтобы установить значок в center на панели навигации на одном контроллере просмотра (диспетчер избранного в левом верхнем углу), который является контроллером таблицы, выведенный из UIViewController, встроенного в контроллер навигации:

let yelpIcon = UIBarButtonItem(image: UIImage(named: "Yelp_trademark_RGB_outline"), style: .plain, target: self, action: nil)
self.navigationController!.navigationItem.rightBarButtonItem  = yelpIcon

Мой Map и TableViewControllers (справа налево) встроены в контроллеры навигации, каждый из которых встроен в контроллер панели вкладок. Я не могу заставить изображение отображаться, создавая элемент навигации в Interface Builder и устанавливая его образ или делая это программно.

Этот код рекомендуется для SO, но не имеет результата, когда я его пытаюсь (у меня есть действие, установленное на nil, так как мне не нужно ничего делать):

let button1 = UIBarButtonItem(image: UIImage(named: "myimage"), style: .plain, target: self, action: Selector("action"))
self.navigationItem.rightBarButtonItem = button1

Примечание. Строка Nav стилизована черным barTintColor, который не должен иметь значения, но я думал, что поделюсь. Изображение представляет собой PNG в папке моих ресурсов. При использовании иерархии представлений отладки я сталкивался с этими двумя уровнями, которые, как представляется, блокируют мое изображение (хотя они не делают этого с помощью кнопки "Назад").

Адрес экземпляра 0x7fa8b7b10aa0 - это UIVisualEffectSubView. Я не уверен, что это проблема, но я не могу понять, как отключить ее. Я изменил цвет оттенка представления в навигационной панели навигационного контроллера, в который он встроен в прозрачный, а также отключает непрозрачность. Ничего не работает.

Как я могу получить изображение справа от моей навигационной панели?


0 ответов