我有一個視圖控制器,我在這裏啓動兩個任務。一個用於獲取位置更新,另一個用於獲取加速度計和陀螺儀傳感器數據更新。我已經將這兩者的內部工作分離爲兩個單獨的類,並通過委託從視圖控制器中檢索數據。離開視圖控制器後保留一項任務
我遇到了一個問題。比方說,我在視圖控制器中啓動位置和運動傳感器數據獲取,然後離開所述視圖控制器。這反過來破壞了在那裏創建的對象,當我返回視圖控制器時,它全部重置。
我希望那些啓動的操作即使在離開視圖控制器時仍保持活動狀態。堅持到我回來。我如何處理這種情況?
我有一個視圖控制器,我在這裏啓動兩個任務。一個用於獲取位置更新,另一個用於獲取加速度計和陀螺儀傳感器數據更新。我已經將這兩者的內部工作分離爲兩個單獨的類,並通過委託從視圖控制器中檢索數據。離開視圖控制器後保留一項任務
我遇到了一個問題。比方說,我在視圖控制器中啓動位置和運動傳感器數據獲取,然後離開所述視圖控制器。這反過來破壞了在那裏創建的對象,當我返回視圖控制器時,它全部重置。
我希望那些啓動的操作即使在離開視圖控制器時仍保持活動狀態。堅持到我回來。我如何處理這種情況?
有幾種方法可以解決這個問題。您可以讓執行這些函數的類成爲一個永遠不會被破壞的單例,並且您的任何類都可以訪問。另一個選擇不是很好的IMO,它將把對象從第一個視圖控制器傳遞到第二個視圖控制器。
單身人士可能是一個解決方案。檢查這個post 這樣,只要你啓動一個管理器,它將保持活着,而不管視圖控制器狀態。
從第二個視圖控制器回來時,您不應該啓動您的第一個視圖控制器(您在何處啓動位置和運動傳感器數據)。這可以通過兩種方式完成。
其他方式: (如果實例化您的第一個視圖控制器)
聲明位置&運動傳感器數據變量全局在appdelegate中並作爲在您的第一個視圖控制器中爲它們簽名。做這些你可以在任何地方使用這些值。