2013-10-20 3 views
0

사용자가 Facebook 계정을 통해 로그인했는지 여부를 다르게 시작하는 iOS 앱이 있습니다. 다음과 같이 현재 위치를 두 번 얻으십시오

그래서 응용 프로그램의 흐름은 다음과 같습니다

1 내가있는 navigationController를 생성하고 표시 애플 대리자를 호출합니다.

2- 루트보기 컨트롤러에서 사용자가 로그인했는지 여부를 확인합니다. 기본적으로 (예 : 처음 부팅하는 동안) 로그인하지 않은 상태로보기 컨트롤러를로드하여 기록되지 않은 사용자의 내용 만 표시합니다. 사용자가 Facebook 계정으로 로그인하면 서버에 요청을 보내고 로그인 한 사용자의 콘텐츠를 보여줍니다. 요청은 didupdatelocation 위임 된 메서드로 시작합니다.이 메서드는 현재 위치를 가져옵니다.

3 로그인 할 때 앱에서 묻는 곳이 많습니다. 사용자가 올바른 로그인 정보를 얻으면 앱 델리게이트에서와 같이 새로운 탐색 컨트롤러가 만들어져 표시됩니다. 문제는이 방법으로 didupdatelocation 메소드를 호출하지 않기 때문에 현재 위치를 얻지 못하며 서버에 요청하지 않는다는 것입니다.

어떻게 문제를 해결할 수 있습니까?

답변

2

귀하의 디자인은 didUpdateLocation에 의존해서는 안됩니다. 이 메소드는 시스템에서 예측할 수없는 간격으로 호출됩니다.

그러나 강제로 호출하는 방법 중 하나는 locationManager를 중지하고 다시 시작하는 것입니다.

startUpdatingLocation 
stopUpdatingLocation 

그러나, 나는 당신이 CLLocationManager Class Reference를 참조하고 그에 따라 로그인 체크인을 설계 다시 좋습니다.

+1

고맙다. cllocationmanager 클래스 참조를 살펴보고 제안을 따라 주었고 루트 viewcontroller를 밀 때 위치 업데이트를 중지하여 내 대답을 찾았습니다! – Bellots

관련 문제