离开视图控制器后保留任务

时间:2017-04-13 11:36:15

标签: ios swift uiviewcontroller persist

我有一个视图控制器,我发起了两个任务。一个用于获取位置更新,另一个用于获取加速度计和陀螺仪传感器数据更新。我已将这两个内部工作分为两个单独的类,并通过委托从视图控制器中检索数据。

我遇到了一个问题。比如,我在视图控制器中启动位置和运动传感器数据获取,然后我离开所述视图控制器。这反过来会破坏在那里创建的对象,当我返回到视图控制器时,它全部被重置。

即使我离开视图控制器,我也希望这些启动的操作保持活动状态。并坚持到我回来。我该如何应对这种情况?

3 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题。您可以使执行这些函数的类成为永远不会被销毁的单例,并且您的任何类都可以访问。另一个不太好的IMO选项是将对象从第一个视图控制器传递给第二个视图控制器。

答案 1 :(得分:0)

单身人士可以解决这个问题。检查一下post 这样,只要你启动一个管理器,无论视图控制器状态如何,它都将保持活动状态。

答案 2 :(得分:0)

从第二个视图控制器返回时,您不应启动第一个视图控制器(启动位置和运动传感器数据的位置)。这可以通过两种方式完成。

  • 一个是使用导航控制器推送第二个视图控制器并返回
  • 从现有视图控制器呈现第二视图控制器并在返回时关闭第二视图控制器

其他方式:(如果实例化您的第一个视图控制器)

声明位置&运动传感器数据变量全局在appdelegate中,并在第一个视图控制器中为它们赋值。这样做可以在任何地方使用这些值。