在点击并发症后,watchOS 3 app重启

时间:2016-10-27 20:13:37

标签: ios swift watchkit apple-watch-complication watch-os-3

我有一个简单的“计时器”watchOS应用程序,它使用分层导航。我可以按下数字表冠返回到手表Springboard,然后点击应用程序图标并返回到我正在使用的同一个界面控制器。

如果我回到表盘并点击我的应用程序的复杂功能,该应用程序将启动,但似乎已重新启动:我失去了当前的状态。有什么方法可以阻止这种情况吗?

2 个答案:

答案 0 :(得分:0)

听起来你在问如何阻止你的应用程序换掉内存?

如果是这样,就像在iOS上一样,这是不可能的 - 显然手表的内存比手机少,所以更有可能被换掉。

您需要做的是将您的状态存储在某个持久层中 - 例如NSUserDefaults - 所以当应用程序重新启动时,它可以重新加载其状态

答案 1 :(得分:0)

如果您通过点按并发症打开您的手表应用程序,该应用程序将自动返回到根界面控制器。这是一种系统强制行为。

如果您想保留以前的状态,则需要将应用的层次结构更改为基于页面的界面。

基于页面的界面中的用户交互就像基于导航的界面一样。您可以将pushController(withName:context:)pop()popToRootController()方法替换为becomeCurrentPage()。我还发现从一个页面界面切换到另一个界面也比导航(推/弹)更快到另一个界面。