Bar button item not shown in navigationBar

Jules picture Jules · Nov 13, 2015 · Viewed 22.2k times · Source

I'm working on an app where my initial view controller is embedded in a Navigation Controller and Tab bar controller.

In my app I have 3 different tabs, one tab is the settings view. This is a tableview with 5 buttons. every button will show the same view controller when it's touched.

When I touch on one of the buttons, I still have a nice green navigation bar, but my buttons do not work.

I tried dragging a Navigation Item into the view in my storyboard and then put a bar button item in it. I can see the button in my storyboard, but it won't show up in my app when I run it.

I also added the following code to my viewDidLoad():

let leftItem = UIBarButtonItem(title: "< Back", style: .Done, target: self, action: Selector("Save"))
let rightItem = UIBarButtonItem(title: "Save", style: .Plain, target: self, action: Selector("Save"))

//self.parentViewController?.navigationItem.leftBarButtonItem = leftItem // also doesn't work

navigationController?.navigationItem.leftBarButtonItem = leftItem
navigationController?.navigationItem.rightBarButtonItem = rightItem

But it won't have any effect.

I checked if the correct UIViewController was assigned to my view in the storyboard, did several Clean builds (CMD + Shift + K) and Rebuilds (CMD + B).

The following images are a screenshot of a part of my storyboard and a screenshot of my app at the view where the buttons won't show up.

EDIT

Added a new screenshot about the controls in the view. These do not work with or without the additional code in my viewDidLoad.

Screenshot of my Storyboard

Screenshot of my app where the buttons should show up

Screenshot of the the setup of the controls in my view

Answer

MarkHim picture MarkHim · Nov 13, 2015

Instead of

navigationController?.navigationItem.leftBarButtonItem = leftItem

do

navigationItem.leftBarButtonItem = leftItem

Update I suggest you add them directly in the storyboard to your Viewcontroller