Как добавить UIBarButtonItem в навигационную панель в приложении turbolinks-ios
У меня есть turbolinks-ios
приложение, которое я унаследовал и нужно добавить нативную навигацию.
Сначала я использовал раскадровку, чтобы встроить основной контроллер приложения в контроллер навигации, но у turbolinks есть своя собственная панель навигации, которая создает две стекированные панели навигации. Затем я удалил контроллер nav из раскадровки, но теперь не могу добавить кнопку в панель навигации по умолчанию. Там нет ошибок, и если я шагаю по коду, он попадает в каждую строку в моей функции, но ничего не отображается на панели. Что я делаю неправильно?
Моя функция, которая вызывается из viewDidLoad()
внутри класса UINavigationController выглядит следующим образом...
func addSlideMenuButton() {
let callback = #selector(toggleNav)
let btnShowMenu = UIButton(type: UIButtonType.system)
btnShowMenu.setImage(self.defaultMenuImage(), for: UIControlState())
btnShowMenu.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
btnShowMenu.addTarget(self, action: callback, for: UIControlEvents.touchUpInside)
let customBarItem = UIBarButtonItem(customView: btnShowMenu)
navigationController?.navigationItem.rightBarButtonItem = customBarItem
}
Любой толчок в правильном направлении будет принята с благодарностью.
1 ответ
Вы должны позвонить sizeToFit
на customView
первый.
Так добавь btnShowMenu.sizeToFit
перед созданием UIBarButtonItem
,