我已经将 UINavigationController 转换为符合我的需求和用例。为了检测后退操作,我有一个在所需操作上正确调用的覆盖方法:
var popViewController: ((UIViewController) -> Void)?
override func popViewController(animated: Bool) -> UIViewController? {
return super.popViewController(animated: animated)
}
我想检查当前正在弹出哪个VC,以便进一步比较它以评估一些属性。 我尝试的第一件事是添加 var ,它将在此覆盖方法中更改。
var popViewController: ((UIViewController) -> Void)?
但我不知道应该做些什么。 这有可能吗?
答案 0 :(得分:2)
根据文档,在func popViewController(animated: Bool)
上调用UINavigationController
的结果会返回弹出的控制器(如果有的话)。
https://developer.apple.com/documentation/uikit/uinavigationcontroller/1621886-popviewcontroller
答案 1 :(得分:2)
我不明白为什么你有一个闭包类型的变量,你可以检查在覆盖方法中正在弹出的视图控制器,而不需要任何存储的属性:
override func popViewController(animated: Bool) -> UIViewController? {
let popVC = super.popViewController(animated: animated) // this is the view controller that will be popped
// Do what ever check you want to do here
return popVC
}