Как добавить 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,

Другие вопросы по тегам