Modify a UINavigationViewController's UIToolBar from InterfaceBuilder - ios

I have a UINavigationViewController, and from InterfaceBuilder I added a ToolBar clicking on Attributes Inspector / Navigation Controller / Shows Toolbar
My RootViewController shows a ToolBar with a single button now, but for some reason I cannot modify it. Clicking on the toolbar selects the underlying RootViewController, I can add buttons by drag-dropping them, but I cannot select existing buttons (so no modifying or renaming them is possible).
How can I modify the UINavigationViewController's ToolBar items from InterfaceBuilder?
Thank you.

In Interface Builder, if you click on the toolbar in your .xib, it will probably not select your toolbar button but the entire toolbar. Try looking up your toolbar in the outline view left of the design view and there click in the button to select it.

Related

Bar Button Item is not Showing

I am trying to create a bottom toolbar. So I dragged I Bar Button Item to the View Controller and it was automatically position at the bottom, see image below:
But when I run the app, it doesn't show the bar at the bottom.
I already added:self.navigationController?.navigationBarHidden = false
I think it's just only a constraints problem.
First of all check your Document Outline near to the left of your table, to see the position (toolbar is just below table):
Add your constraints and pay attention to all options as shown in the picture:
Then, take a look to the size inspector, for the table view:
And for the toolbar:
This configuration working both in portrait/landscape mode.
Drag UIToolbar controller directly instead of only UIBarbutton item.
self.navigationController?.navigationBar.hidden=false
Have you set constraints of UIToolbar? I just guess it can be one of the reasons why you cannot see your barbuttoitem.
The navigation bar and the toolbar are two different things and the toolbar is hidden by default. Try setting the toolbar hidden attribute to false.
Sometimes bar button item and bar button do not show when we present our screen. On screen we can then not see bar button item and bar button. So we need to push our screen if we want bar button item and rightBarButtonItem.

How to connect Xcode Storyboard's "Simulated Metrics" toolbar to an actual IBOutlet UIToolbar?

I'm hitting issues when attempting to design a UIToolbar Accessory View via an Xcode Storyboard.
When I drag a UIToolbar object to the top margin of my View Controller, the item is added to the left pane and I am able to connect it to my class's IBOutlets. It appears correctly when I run the app.
However, the toolbar is not visible anywhere on the storyboard. I thus lose the visual editing benefits of using Interface Builder in the first place. The bar button items are only visible in the left sidebar.
I have seemingly gotten around being unable to see the views in the IB canvas by using the View Controller's "Simulated Metrics". Now I can see a Toolbar in the Storyboard.
Attributes Inspector > Simulated Metrics
Set "Bottom Bar" to value "Opaque Toolbar"
Drag Bar Button Items into this Simulated Toolbar
However, when I run the app, this "Simulated Toolbar" is not visible.
I am unable to link the simulated toolbar to an IBOutlet via the Connections Inspector
I have not found a way to link the "toolbar object" (first image) to the "simulated toolbar" (second image).
My main goal here is to see a visual representation of the Toolbar in the Storyboard. Is this possible?
Simulated metrics are just that -- simulated. They help you to visualize your design, but the artifacts won't necessarily show up at runtime short of some other mechanism. The toolbar that you created in the storyboard is there at runtime but not added to your view. That's why it's up in the header of the scene.
The standard use of UIToolbar is to allow a UINavigationController to manage it. So there is a toggle in InterfaceBuilder's Attributes Inspector pane when a UINavigationController is selected.
From there you can add UIBarButtonItems as needed, and hook them up to IBOutlets in your code. No need to hook up the toolbar to an IBOutlet; you can get it from your UINavigationController's toolbar property at runtime.
See the Apple docs.

iOS storyboards - UINavigationBar not appearing when I add it

I added a UINavigationBar to a detail controller scene, but when I run my app the UINavigationBar does not appear. Why is it doing this ? I have the custom class set to the controller I want it too, but its not appearing, here is a screenshot.
but when I run this app, I dont see the "Title" bar or anything.
To add constraints select your navigation bar and click in the icon as in the picture.
uncheck "constrain to margins" as you want the navigation bar to snap in the boards of the screen, select the up and left red dots lines and add the value 0 to the drop boxes, meaning 0 pixels from the left and top of the screen.
Select Update frames and click in add constraints.
I can see in your screenshot you have other screen with problems (red icon next to the view controller) you should also fix that, click in the icon for more details about the error/warning
I am not sure if I understand what you are trying to do, but try this,
Select the detail view and go to the xCode menu and select editor->Embed in-> Navigation Controller.
I hope it helps
Add constraints to your navigation bar. However, IcaroNZ suggested the best way for navigation

TabBar in TableViewController is not at the bottom

I am trying to add a tabBar to my TableViewController but it is not a the bottom it just act like a cell
Here is a screenShot:
When using a UITableviewController storyboard scene, every Tab Bar or Toolbar you drag in it is automatically put into the tableView tableFooterView.
If you don't want that, you have to create an UIViewController scene. You will therefore be able to drag your Tab Bar or Toolbar in it, set its auto layout constraints and then add your UITableView in the UIViewController scene (see image below).
However, there is another solution. Select your Navigation Controller scene and go to the Attributes Inspector. In the Simulated Metrics, go to Bottom Bar and select "Translucent Tab Bar" or "Translucent toolbar". Then, select your UITableviewController scene and repeat the previous operation (see the picture below).
If you do so, all controllers following your Navigation Controller will have a Tab Bar or Toolbar (that's another problem that can also be fixed).
Use autoLayout to pin it to the bottom

UIToolbar not showing but it's below the self.view

I make a toolbar in my view but I can not see it.
I use Reveal.app to check out the structure of the view
I find out the toolbar exists and it's
below the view so I can not see it. How can I fix this?
Of course I use
self.navigationController.toolbar.hidden = NO;
And these my screenshot:
Thank you in advance.
The Navigation Bar you have at the top pushes all of the content 44 points down.
In you storyboard or .xib file, you should select the view for this controller and set the top bar property to Navigation Bar. This way you will be able to work in interface builder and your content will be positioned properly.
Good luck!
Edit
Select the your ViewController in Interface Builder:
In the Inspector pane in Xcode change the Top Bar value
Open your view's .xib file and select your main view of this viewController. And then choose the Attribute Inspector on the right. And in Simulated Metrics, there has an item named Top Bar. Set your top bar into Navigation Bar instead of none. I thank that will help you.

Resources