2013-10-20 43 views
0

我有一個iOS應用程序,如果用戶已通過Facebook帳戶登錄或以其他方式啓動,它的啓動方式會有所不同。獲取當前位置兩次

所以應用程序流程如下:

1-我打電話的應用程序委託,它創建了一個navigationController並顯示它。

2-在根視圖控制器,它檢查是否用戶在或沒有登錄。默認情況下(例如在第一次啓動時),它將視圖控制器加載爲未登錄,僅顯示未記錄用戶的內容。如果用戶使用Facebook帳戶登錄,它將向服務器發送請求並顯示登錄用戶的內容。請求從didupdatelocation委託方法開始,從中獲取當前位置。

3-有很多地方在哪,如果你想登錄的應用要求。如果用戶得到正確的登錄,它會創建一個新的導航控制器,如應用程序委託,並進行顯示。問題在於,它不會調用方法didupdatelocation,因此它不會獲取當前位置,也不會向服務器發出任何請求。

你如何建議我解決問題?

回答

2

您的設計不應該依賴didUpdateLocation被調用。系統會以不可預測的間隔調用此方法。

的一種方式,迫使它不過打電話,是停止的LocationManager,並再次啓動它。

startUpdatingLocation 
stopUpdatingLocation 

不過,我建議你諮詢CLLocationManager Class Reference並據此重新設計你的登錄檢查。

+1

謝謝你,我也跟着你的建議,看看cllocationmanager類引用,我發現我的答案通過停止力推根視圖 - 控制位置更新! – Bellots