我有一个视图控制器,我在这里启动两个任务。一个用于获取位置更新,另一个用于获取加速度计和陀螺仪传感器数据更新。我已经将这两者的内部工作分离为两个单独的类,并通过委托从视图控制器中检索数据。离开视图控制器后保留一项任务
我遇到了一个问题。比方说,我在视图控制器中启动位置和运动传感器数据获取,然后离开所述视图控制器。这反过来破坏了在那里创建的对象,当我返回视图控制器时,它全部重置。
我希望那些启动的操作即使在离开视图控制器时仍保持活动状态。坚持到我回来。我如何处理这种情况?
我有一个视图控制器,我在这里启动两个任务。一个用于获取位置更新,另一个用于获取加速度计和陀螺仪传感器数据更新。我已经将这两者的内部工作分离为两个单独的类,并通过委托从视图控制器中检索数据。离开视图控制器后保留一项任务
我遇到了一个问题。比方说,我在视图控制器中启动位置和运动传感器数据获取,然后离开所述视图控制器。这反过来破坏了在那里创建的对象,当我返回视图控制器时,它全部重置。
我希望那些启动的操作即使在离开视图控制器时仍保持活动状态。坚持到我回来。我如何处理这种情况?
有几种方法可以解决这个问题。您可以让执行这些函数的类成为一个永远不会被破坏的单例,并且您的任何类都可以访问。另一个选择不是很好的IMO,它将把对象从第一个视图控制器传递到第二个视图控制器。
单身人士可能是一个解决方案。检查这个post 这样,只要你启动一个管理器,它将保持活着,而不管视图控制器状态。
从第二个视图控制器回来时,您不应该启动您的第一个视图控制器(您在何处启动位置和运动传感器数据)。这可以通过两种方式完成。
其他方式: (如果实例化您的第一个视图控制器)
声明位置&运动传感器数据变量全局在appdelegate中并作为在您的第一个视图控制器中为它们签名。做这些你可以在任何地方使用这些值。