【发布时间】:2017-04-19 18:54:30
【问题描述】:
我正在创建一个 watchOS 应用程序,其中有一个带有按钮的接口控制器(接口控制器 1)。该按钮与接口控制器 2 具有模态连接,而接口控制器 2 具有与接口控制器 3 具有模态连接的按钮。每当用户单击接口控制器 3 上的取消按钮时,它会将它们带到接口控制器 2。但是,我希望它把它们带到接口控制器 1。我该怎么做?图表如下:
【问题讨论】:
标签: swift modal-dialog segue watchkit
我正在创建一个 watchOS 应用程序,其中有一个带有按钮的接口控制器(接口控制器 1)。该按钮与接口控制器 2 具有模态连接,而接口控制器 2 具有与接口控制器 3 具有模态连接的按钮。每当用户单击接口控制器 3 上的取消按钮时,它会将它们带到接口控制器 2。但是,我希望它把它们带到接口控制器 1。我该怎么做?图表如下:
【问题讨论】:
标签: swift modal-dialog segue watchkit
我知道的唯一方法是以某种方式与接口控制器 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()
}
}
【讨论】:
有一种方法可以转到根视图控制器。
popToRootController()
在第三个界面中调用上述方法从你的操作方法转到根视图控制器。
【讨论】: