我正在使用WKInterfaceController.reloadRootControllers与上下文加载3个接口控制器,一切都运行正常。但是,在滑动页面1到页面2时,我需要传递数据。似乎没有可编程使用的segue来创建新的上下文或以其他方式传递数据。我该如何解决这个问题?我不想为此创建单例。我知道如何在其他segue中传递上下文数据,但这个问题特别涉及到Watchkit上的“下一页”导航。迄今为止,我还没有找到答案。谢谢!Markus
你是否尝试在你的第一页使用contextForSegue?
override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? {
let myDate = "today"
return myDate
}
contextForSegue
。我有同样的问题,但尚未找到任何解决方案,因此我通过使用ExtensionDelegate来解决它。 - fbitterlich我一直在寻找这个问题的答案..
NextPage Segue类似于iOS中的UIPageViewController
。我已经尝试了contextForSegue(withIdentifier segueIdentifier: String)
,但它在滑动时不会被调用,并且你无法在故事板中给这个segue一个identifier
。
对我来说唯一的解决办法是使用NotificationCenter
在第一个InterfaceController中,我使用willDisappear
/didDeactivate
发布一个带有对象的通知,在第二个InterfaceController中我订阅了它。
NotificationCenter.default.post(name: Notification.Name("interface1WillDisappear"), object: context)
NotificationCenter.default.addObserver(self, selector: #selector(awake(withNotification:)), name: Notification.Name("interface1WillDisappear"), object: nil)
添加了这个函数
func awake(withNotification notification: Notification) {
guard let context = context as? MyContextObject else { return }
print(context)
}
deinit {
NotificationCenter.default.removeObserver(self)
}
希望这能帮到你!