0

ユーザーが Facebook アカウントを介してログインしているかどうかによって、起動方法が異なる iOS アプリがあります。

したがって、アプリケーション フローは次のようになります。

1- アプリ デリゲートを呼び出します。これにより、navigationController が作成されて表示されます。

2-ルートView Controllerで、ユーザーがログインしているかどうかを確認します。デフォルトでは (初回起動時など)、View Controller をログインしていないものとしてロードし、ログインしていないユーザーのコンテンツのみを表示します。ユーザーが Facebook アカウントでログインしている場合、リクエストをサーバーに送信し、ログインしているユーザーのコンテンツを表示します。リクエストは、didupdatelocation 委任されたメソッドで始まり、そこから現在の場所を取得します。

3- アプリがログインするかどうかを尋ねる場所がたくさんあります。ユーザーが正しくログインすると、アプリ デリゲートのように新しいナビゲーション コントローラーが作成され、表示されます。問題は、このようにメソッド didupdatelocation を呼び出さないため、現在の場所を取得せず、サーバーに要求を行わないことです。

問題を解決する方法を教えてください。

4

1 に答える 1

2

設計は、didUpdateLocation の呼び出しに依存するべきではありません。このメソッドは、システムによって予測不可能な間隔で呼び出されます。

ただし、強制的に呼び出す 1 つの方法は、locationManager を停止してから再度開始することです。

startUpdatingLocation
stopUpdatingLocation

ただし、 CLLocationManager Class Referenceを参照して、それに応じてログイン チェックを再設計することをお勧めします。

于 2013-10-20T13:37:50.080 に答える