2017-04-13 69 views
1

我有一个视图控制器,我在这里启动两个任务。一个用于获取位置更新,另一个用于获取加速度计和陀螺仪传感器数据更新。我已经将这两者的内部工作分离为两个单独的类,并通过委托从视图控制器中检索数据。离开视图控制器后保留一项任务

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

我希望那些启动的操作即使在离开视图控制器时仍保持活动状态。坚持到我回来。我如何处理这种情况?

回答

0

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

0

单身人士可能是一个解决方案。检查这个post 这样,只要你启动一个管理器,它将保持活着,而不管视图控制器状态。

0

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

  • 一种是使用导航控制器推你的第二个视图控制器和回来
  • 从现有的视图控制器呈现第二视图控制器,解聘第二视图控制器,而回来

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

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

相关问题