Search code examples
iosswiftuinavigationbaruinavigationitem

Return to home UIViewController


I can click 3 times on "< Back" button to return to home UIViewController. I also added image "Home" on navigation. How can I return to first UIViewController, when user clicks on "Home" image? I think I need to add some action

class DoctorsViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let image = UIImage(named: "homeIcon")
        let rightButton = UIBarButtonItem(image: image, style: .done, target: self, action: nil)        
        navigationItem.rightBarButtonItem = rightButton
    }
}

Solution

  • Try this

    override func viewDidLoad() {
        super.viewDidLoad()
    
        let image = UIImage(named: "homeIcon")
        let rightButton = UIBarButtonItem(image: image, style: .done, target: self, action: #selector(self.backBtnClicked))        
        navigationItem.rightBarButtonItem = rightButton
    }
    
    func backBtnClicked(_ sender: UIBarButtonItem) {
           _ = self.navigationController?.popToRootViewController(animated: true) // pop to root controller
     }