WatchOS:通过“下一页” segue

时间:2019-01-09 06:46:43

标签: swift segue watchkit apple-watch watch-os

我正在使用WKInterfaceController.reloadRootControllers和我的应用程序中的上下文加载3个接口控制器。

一切正常。但是,我需要在滑动时将数据从第1页传递到第2页。似乎没有理由我可以以编程方式使用它来创建新上下文或以其他方式传递数据。

我该如何解决? 我不想为此创建一个单例。我知道如何在其他环境中传递数据,这个问题特别涉及Watchkit上的“下一页”导航。到目前为止,我找不到答案。

谢谢!

马库斯

2 个答案:

答案 0 :(得分:0)

您是否尝试过在首页中使用contextForSegue?

override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? {
    let myDate = "today"
    return myDate
}

答案 1 :(得分:0)

我也在寻找这个问题的答案。

NextPage Segue与iOS中的UIPageViewController类似。我已经尝试过contextForSegue(withIdentifier segueIdentifier: String),但并未通过滑动调用它,并且您无法在情节提要中为该脚本提供identifier

对我来说唯一的解决方法是使用NotificationCenter

在第一个InterfaceController中,我在willDisappear / didDeactivate上发布了带有对象的通知,这与watchOS并没有太大的区别,在第二个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)
}

希望这会有所帮助!