Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIBarButtonItem, add a back button using Swift

Tags:

ios

swift

I want to add a back button to my webview app.

Looking through UIBarButtonItem, I can't seem to find a back button. See code:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let url = NSURL(string: "http://google.com")!
    webView.loadRequest(NSURLRequest(URL: url))
    webView.allowsBackForwardNavigationGestures = true

    let refresh = UIBarButtonItem(barButtonSystemItem: .Refresh, target: webView, action: #selector(webView.reload))

    let back = UIBarButtonItem(barButtonSystemItem: .Back, target: webView, action: #selector(webView.goBack))

    toolbarItems = [back, refresh]
    navigationController?.toolbarHidden = false

}

How do I add a back button to the toolbar?

like image 812
Henrik Petterson Avatar asked Sep 03 '25 02:09

Henrik Petterson


1 Answers

I think you are forget too add UIBarbuttonItem in navigationItem

so you need to do code like:

self.navigationItem.rightBarButtonItems = toolbarItems // that show two right side button. 

if you want to show back button at left side and refresh button at right side in navigationbar then you must be code like:

 self.navigationItem.rightBarButtonItem = refresh
 self.navigationItem.leftBarButtonItem = back

That will be appear in you nevigation back button left side and refresh button right side

So your code something look like following:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let url = NSURL(string: "http://google.com")!
    webView.loadRequest(NSURLRequest(URL: url))
    webView.allowsBackForwardNavigationGestures = true

    let refresh = UIBarButtonItem(barButtonSystemItem: .Refresh, target: webView, action: #selector(webView.reload))

    //let back = UIBarButtonItem(barButtonSystemItem: .Back, target: webView, action: #selector(webView.goBack))

    let back = UIBarButtonItem(title: "Back",style: .Plain,target: webView,action: #selector(webView!.goBack))

   self.navigationItem.rightBarButtonItem = refresh
     self.navigationItem.leftBarButtonItem = back
    navigationController?.toolbarHidden = false

}

if you want to add multiple button at leftbarbutton then create one more UIBarbuttonItem object something like:

let undo = UIBarButtonItem(barButtonSystemItem: .Undo, target: webView, action: #selector(webView.undo))

self.navigationItem.leftBarButtonItems = [back,undo]

that will be display two left button on navigation bar

like image 142
Nitin Gohel Avatar answered Sep 04 '25 20:09

Nitin Gohel