考虑三个不同的控制器A、B和C,其中A是导航控制器中的初始控制器。
现在我推到B,然后推到C。

A --> B --> C

然后我想从C转到A。我怎么能用一次推和动画就到那里。我想方法是从导航堆栈中找到控制器A并调用popToController方法。如果有其他更好的方法,请告诉我。
现在主要的问题是如何传递C --> A中的数据。
如果是从B --> A来的,我可以用这个授权。但是对于C --> A可以做什么来使用委派?
我确实有使用观察者,单例,反应模式的解决方法。但我想知道有没有更好的方法。

最佳答案

您可以有多种方法来实现此功能。
一次就可以把你的风投从名单上抽出来。

let viewControllers: [UIViewController] = self.navigationController!.viewControllers ;
    for aViewController in viewControllers {
        if let controllerA =  aViewController as? AViewController) {
           controllerA.data = self.data
           self.navigationController?.popToViewController(controllerA, animated: true);
        }
    }

你也可能对unwind segue感兴趣。Here也是一个很好的例子。

10-05 20:20