Ios UIViewController';s确定pop的委托函数
我在导航堆栈中有3个ViewController,它们是ViewControllerA、ViewControllerB和ViewControllerC 当我从ViewControllerB按下后退按钮时,我到达ViewControllerAIos UIViewController';s确定pop的委托函数,ios,swift,uiviewcontroller,uinavigationcontroller,Ios,Swift,Uiviewcontroller,Uinavigationcontroller,我在导航堆栈中有3个ViewController,它们是ViewControllerA、ViewControllerB和ViewControllerC 当我从ViewControllerB按下后退按钮时,我到达ViewControllerA 我想检查我是如何通过弹出或作为导航堆栈的rootViewController到达ViewControllerA的。您可以为backButton提供一个展开功能,并在视图控制器中捕捉它 @IBAction func unwindToView(unwindSeg
我想检查我是如何通过弹出或作为导航堆栈的rootViewController到达ViewControllerA的。您可以为backButton提供一个展开功能,并在视图控制器中捕捉它
@IBAction func unwindToView(unwindSegue: UIStoryboardSegue) {
if let XControllerView = unwindSegue.sourceViewController as? XController {
print("Coming from XControllerView")
}
else if let YControllerView = unwindSegue.sourceViewController as? YController {
print("Coming from YControllerView")
}
}
有关展开的详细信息:制定协议:
protocol DismissProtocol{
func dismissPresentedViewControllerComplete()
}
我们将使viewControllerA符合此协议
在ViewControllerB中创建DismissProtocol类型的属性
class ViewControllerB: UIViewController{
var delegate: DismissProtocol?
//............
}
显示ViewControllerB时,将ViewControllerA指定为代理
class SecondController: UIViewController{
var delegate: DismissProtocol?
覆盖ViewControllerA中的协议方法:
extension ViewControllerA: DismissProtocol{
func dismissPresentedViewControllerComplete() {
// Do what you want to do when you return from ViewControllerB
}
}
现在,在ViewControllerB的Disclose completion中,执行以下覆盖方法:
self.dismiss(animated: false) {
self.delegate?.dismissPresentedViewControllerComplete()
}
添加您尝试过的代码。这个问题包含的信息太少,任何人都无法帮助你。请解释你想做什么