1

I have a turbolinks-ios app that I've inherited and need to add a native nav.

At first I used the storyboard to embed the main application controller within a navigation controller, but turbolinks has it's own navigation bar so that creates two stacked navigation bars. I then deleted the nav controller from the storyboard, but now I cannot add my button to the default turbolinks nav bar. There's no errors, and if I step through the code it hits every line within my function, but nothing is displayed in the bar. What am I doing wrong?

My function which is called from viewDidLoad() within the UINavigationController class is as follows...

    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
    }

Any nudge in the right direction would be greatly appreciated.

1 Answers1

0

You have to call sizeToFit on the customView first.

So add btnShowMenu.sizeToFit just before creating the UIBarButtonItem.

os111
  • 154
  • 1
  • 8