【问题标题】:Preserving a task after leaving the view controller离开视图控制器后保留任务
【发布时间】:2017-09-09 12:23:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios swift uiviewcontroller persist


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        在 appdelegate 中全局声明位置和运动传感器数据变量,并在您的第一个视图控制器中为它们分配值。执行这些操作,您可以在任何地方使用这些值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-23
          • 2017-04-23
          相关资源
          最近更新 更多