【问题标题】:TodayViewController recreated every time Notification Center is shown每次显示通知中心时都会重新创建 TodayViewController
【发布时间】:2014-07-22 15:30:43
【问题描述】:

在尝试为 iOS 8 开发 Today Extension 时,我发现了一个奇怪的问题。每次用户打开通知中心时,似乎都会重新创建我正在使用的视图控制器。这意味着没有数据保留,因此我无法知道扩展程序是否需要更新。

想要这样做的主要原因是我想保留小部件的高度(使用preferredContentSize)。问题是当视图加载时,这个值总是被重置,这导致小部件的大小跳跃。股票小部件是它应该如何工作的一个例子,他们显然已经解决了这个问题,所以必须有某种方法来保留不同“会话”之间的数据。我还可以从调试器中得知该进程继续运行,因此这只是 Apple 代码中的某些内容,强制重新创建 View Controller。

我的问题是,这是一个错误吗?还是基于我缺少的某些设置或某些属性?或者它可能只是它应该工作的方式?如果是这样,解决方法是什么?

【问题讨论】:

  • 我也遇到了同样的问题,谁能帮帮我。单元格实际上被重新创建,而不仅仅是数据重新加载。
  • 正如答案中所指出的,这似乎是他们的工作方式。我通过将数据保存到 NSUserDefaults 来解决它。

标签: ios iphone widget ios8 ios-app-extension


【解决方案1】:

这就是他们的工作方式。将您的信息保存到设备上,以便下次启动时重新加载它,以及更新时间,以便您知道它是否已过时。对于少量数据,只需使用 NSUserDefaults。对于较大数量的保存到文件、CoreData、sqlite 等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2014-01-15
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多