Swift - WatchKit:如何将数据返回到根视图控制器?

Posted

技术标签:

【中文标题】Swift - WatchKit:如何将数据返回到根视图控制器?【英文标题】:Swift - WatchKit: How to get data back to the root view controller? 【发布时间】:2019-11-17 22:27:17 【问题描述】:

假设我有三个接口控制器,它们都通过 push segues 链接。

InterfaceController1 -pushSegue-> InterfaceController2 -pushSegue-> InterfaceController3

InterfaceController1 有一个表格,它将存放下面类中的数据。

所以,假设我有课:

class manageData 
    var data1:String?
    var data2:String? 

这个类应该保存来自InterfaceController2InterfaceController3 的数据。

所以 InterfaceController1 创建了一个 manageData 对象并使用 contextForSegueWIthIdentifier 方法将其传递给 InterfaceController2。 InterfaceController2 然后将其数据添加到 manageData 对象,并使用contextForSegueWIthIdentifier 方法将其传递给 InterfaceController3。

现在我的问题是,一旦 InterfaceController3 将其数据添加到对象,我如何将该完整对象传递回 InterfaceController1 并填充数据,以便 InterfaceController1 可以将数据添加到表中?希望我已经说得够清楚了。我没有任何实际代码来表示这一点,因为我还不知道如何实现它。

【问题讨论】:

【参考方案1】:

所以我解决这个问题的方法是创建一个单例类,它在不同的控制器中保存我的所有数据。然后当我到达最后一个控制器并将我的数据发送到单例时,我会弹回根控制器。

当我回到根控制器时,在 awake 方法中,我调用了一个名为 loadTableData() 的函数,它在单例唤醒时自动从单例获取信息并将其加载到表中。现在似乎工作得很好,但我不知道这种方法可能会出现任何潜在问题。

【讨论】:

以上是关于Swift - WatchKit:如何将数据返回到根视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何以swift语言在watchKit中为gyroActive或gyroAvailable编码?

将数据从 Parse tableview 传递到 WatchKit

在Swift中使用WatchKit通过程序设置UIImage动画

在我的 WatchKit 扩展中引用一个 Objective c 类(swift)

在共享的 Swift App 框架中使用 Core Data

创建后如何将通知场景添加到 WatchKit 目标?