我的第一个视图控制器有一个按钮,它触发@IBActiongoTo2ndVc()
它呈现了第二个 ViewController:
class FirstVC: UIViewController {
...
@IBAction func goTo2ndVc() {
let secondVc = SecondVC(label: "I am second vc.")
self.presentViewController(secondVc, animated: true, completion: nil)
}
按下按钮时,第二个视图控制器将显示在屏幕上。没问题。
在第二视图控制器中,还有一个用于返回到第一视图控制器的按钮:
class SecondVC: UIViewController {
...
@IBAction func backToFirst(sender: AnyObject) {
print("go back ...")
self.navigationController?.popViewControllerAnimated(true)
}
}
我在网上查了一下,人们建议使用navigationController?.popViewControllerAnimated(true)
返回到上一个控制器。但是,当我按下“返回”按钮时,我可以看到打印消息“返回...”,但应用程序不会返回到第一个视图控制器。为什么?
@IBAction func backToFirst(sender: AnyObject) {
print("go back ...")
self.dismissViewControllerAnimated(true, completion: nil)
}
在 Swift 3 中
self.dismiss(animated: true, completion: nil)
您不应该使用导航控制器,因为在添加第二个视图控制器时没有使用它。这就是为什么只需调用dismissViewControllerAnimated
method.
你必须使用UINavigationController
和它的pop
仅当您通过以下方式添加视图控制器时才使用方法pushViewController
method.
在这里熟悉导航控制器的概念:https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)