2017-02-03 17 views
0

Я могу нажать 3 раза на кнопку «< Назад», чтобы вернуться на главную UIViewController. Я также добавил изображение «Главная» в навигации. Как я могу вернуться к первому UIViewController, когда пользователь нажимает на изображение «Главная»? Я думаю, что нужно добавить какие-то действияВернуться на главную UIViewController

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 
    } 
} 
+2

использования navigationController.popToRootViewControlle г (истина). –

+0

вы можете использовать unind segue непосредственно к контроллеру вида, который хотите вернуться. проверьте ссылку - http://ashishkakkad.com/2015/04/work-with-unwind-segue-in-swift-language-ios-8/ –

ответ

3

Попробуйте

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 
} 
+0

Да, я видел. – Sahil

+0

Я тебя не понял. он просто просто хочет всплывать на homeviewcontroller при нажатии на кнопку со стрелкой. разве это не @ Кирилл? – Sahil

+0

ваш ответ в порядке, но в третий раз нужно всплывающее окно, щелкнув –

0

попробовать это

for controller in (self.navigationController?.viewControllers)! { 
     if controller is <#YourController#> { 
      _ = self.navigationController?.popToViewController(controller, animated: true) 
     } 
} 
+0

Давай, это очень уродливо. –

0

Попробуйте с swift3

var viewControllers = navigationController?.viewControllers 
viewControllers?.removeLast(2) 
navigationController?.setViewControllers(viewControllers!, animated: true)