繁体   English   中英

Swift如何正确使用关闭视图控制器/如何使用3个视图控制器制作后退按钮

[英]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)
}

使用UINavigationControllerpush 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM