professor_robot
professor_robot

Reputation: 41

UIToolbar xib xcode

I am trying to create a custom UIToolbar that I can add to multiple views, I don't want to do this programmatically so I am using xib to design a UIToolbar. Do I need to wrap this in a UIView and a View Controller? ViewController.m is the root view controller. This is just a simple project I am just trying out some stuff

UIToolbar XIB

Adding CustomToolbar to the Root UIView

Upvotes: 1

Views: 1979

Answers (1)

Igor
Igor

Reputation: 12303

You can do this so:

  1. create ToolBar.xib file, delete UIView and add UIToolbar
  2. create ToolBar.swift file, add code, like shown, and make outlets
  3. for .xib in "Identity and Type" put Name "ToolBar.swift"

/Users/Igor/Desktop/Снимок экрана 2016-01-05 в 03.34.33.png

  1. In your root View Controller put this code in ViewDidLoad:

    let toolBar = UINib(nibName: "ToolBar", bundle: nil).instantiateWithOwner(nil, options: nil).first as! ToolBar
    toolBar.hidden = true
    self.navigationController!.view.addSubview(toolBar)
    self.navigationController!.toolbarItems = toolBar.items
    
  2. In all View Controllers put in ViewDidLoad:

    self.toolbarItems = self.navigationController!.toolbarItems
    
  3. ToolBar.swift:

    import UIKit
    
    class ToolBar: UIToolbar {
    
        override init(frame: CGRect) {
            super.init(frame: frame)
        }
    
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
    
        @IBAction func item1Pressed(sender: AnyObject) {
            print("item 1 pressed")
        }
    
        @IBAction func item2Pressed(sender: AnyObject) {
            print("item 2 pressed")
        }
    
        @IBAction func item3Pressed(sender: AnyObject) {
            print("item 3 pressed")
        }
    
        @IBAction func item4Pressed(sender: AnyObject) {
            print("item 4 pressed")
        }
    
    }
    

Upvotes: 2

Related Questions