[英]Swift How to use dismiss view controller properly/ How to make a back button with 3 View Controllers
语境
我有3个视图控制器。 A打开B,再打开C。我在B和C中都有一个后退按钮。我希望后退按钮从C-> B和B-> A退出,而无需重新加载视图控制器。 我尝试关闭视图控制器。
问题
如果我去B而不是C并解雇C,它将回到B,但是如果我解雇B,它将回到C,而不是A
A -> B -> C -> back -> B -> back -> C
Should be: A -> B -> C -> back -> B -> back -> A
码
在A,B和C中:
@IBAction func backButton(_ sender: Any) {
dismiss(animated: true)
}
使用UINavigationController
并push
UIViewControllers
而不是自己处理导航。 UINavigationController
将处理后退按钮的正确行为(无需IBAction)
例如,在您的ViewController-A中实现以下功能:
@IBAction func showB() {
navigationController?.pushViewController(viewControllerB, animated: true)
}
并将ViewController-A作为rootViewController
嵌入到rootViewController
中的UINavigationController
实例中,或以这种方式进行编程
let viewControllerA = ViewControllerA() // or instantiate from storyboard
let masterNavigationController = UINavigationController(rootViewController: viewControllerA)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.