【发布时间】:2020-05-27 23:32:57
【问题描述】:
我将描述我想做什么。我有 3 个视图控制器。第一个应该是导航的,我认为我在代码中犯了错误。
第一个 VC 通向第二个,第二个 VC 通向第三个 VC。第三个有一个按钮,应该返回第一个。
这就是我从 firstVC 中呈现 secondVC 的方式:
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)
}
现在在第二个VC中,当我点击右侧navBarItem中的Close时,应该打开第三个VC并且它工作正常,这里是代码:
在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.
}
而在这个按钮上点击第三个VC,我需要回到第一个VC,这就是我迷路的地方:
@IBAction func btnTapped(_ sender: Any) {
if let navController = self.navigationController {
navController.popViewController(animated: true)
} //nothing happens on click
}
【问题讨论】:
标签: ios swift uiviewcontroller uinavigationcontroller popviewcontroller