Я опишу, что я хочу сделать. У меня есть 3 viewControllers. Первый должен быть навигационным, и я думаю, что я допустил ошибку в коде.
Первый V C ведет ко Второму, а второй V C ведет к Третьему V C. Третий имеет получил кнопку, которая должна привести к первой.
Вот так я представляю secondV C от первогоV * 1024 *:
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let secondVC = (mainStoryboard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController)
presentVC(SecondVC)
func presentVC(_ VC: UIViewController) {
let navController = UINavigationController(rootViewController: VC)
navController.modalPresentationStyle = .fullScreen
self.navigationController?.present(navController, animated: true, completion: nil)
}
Теперь во втором V C, когда я нажимаю Close
справа navBarItem, третий V C должен быть открыт, и он работает нормально, вот код:
В ViewDidLoad
:
self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Close", style: .plain, target: self, action:
#selector(closeSecondVC))
И после:
@objc
func closeSecondVC() {
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let thirdVC = (mainStoryboard.instantiateViewController(withIdentifier: "ThirdViewController") as! ThirdViewController)
presentVC(thirdVC) //Same function as above.
}
И на эту кнопку кликните в третьем V C, мне нужно вернуться к первому V C, вот где я теряюсь:
@IBAction func btnTapped(_ sender: Any) {
if let navController = self.navigationController {
navController.popViewController(animated: true)
} //nothing happens on click
}