将WatchKit模态调用解除为根控制器

时间:2017-04-19 18:54:31

标签: swift modal-dialog segue watchkit

我正在创建一个watchOS应用程序,其中有一个带有按钮的接口控制器(接口控制器1)。该按钮具有到接口控制器2的模态segue,并且接口控制器2具有到接口控制器3的模态segue的按钮。每当用户点击接口控制器3上的取消按钮时,它将它们带到接口控制器2.但是,我希望它将它们带到Interface Controller 1.我该怎么做?这是图表:enter image description here

2 个答案:

答案 0 :(得分:0)

我知道的唯一方法是以某种方式与接口控制器1通信(一个通知?),并让它使用以下方法:

self.becomeCurrentPage()

例如

@IBAction func cancelPressed(_ sender: Any) {
    NotificationCenter.default.post(name: Notification.Name.CancelSelected, object: self)
}

,然后在接口控制器1中:

override func awake(withContext context: Any?) {
    super.awake(withContext: context)

    _ = NotificationCenter.default.addObserver(forName: Notification.Name.CancelSelected, object: nil, queue: OperationQueue.main) { (notification) in
        self.becomeCurrentPage()
    }
}

答案 1 :(得分:-1)

有一种方法可以转到根视图控制器。

popToRootController()

调用上面的方法从第3个界面的action方法转到root视图控制器。