2012-01-03 4 views
1

앱이로드되면 바로 위치를 요청하도록 앱을 설정했지만 앱이 처음 사용되면 대화 상자가 팝업으로 표시되어 잠시 동안 사용자의 승인을 요청한 다음보기로 사라집니다. 로드가 완료되었습니다. 이것은 모두 사용자가 "예, 괜찮습니다"라고 말하기에는 너무 빠릅니다. 사용자가 앱을 처음로드 할 때 위치 권한 팝업이 나타나게하려면 다음 코드를 어디에 넣어야합니까? 로드 중 iPhone 위치 가져 오기

CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
CLLocation *location = [[CLLocation alloc] init]; 

locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; 
[locationManager setPurpose:@"A fun way to record where you've answered the questions and how you did at each location."]; 
[locationManager startUpdatingLocation]; 
location = [locationManager location]; 
[locationManager stopUpdatingLocation]; 

는 브렌

+0

문맥이 필요합니다. 위 코드를 어디에서 수행하고 있습니까? –

+0

해당 권한 대화 상자가 닫히지 않아야합니다. App Delegate의'ApplicationDidFinishLaunchingWithOptions :'메소드에서 위치 관리자 호출을 실행하면 권한 대화 상자가 표시되고 사용자가 응답 할 때까지 차단됩니다. 이것이 바로 모달 대화 상자입니다. –

+0

죄송합니다. 첫 번째 View Controller의 viewDidLoad 이벤트에있었습니다. –

답변

2

가이 코드를 넣을 수 있습니다 많은 장소가있다 , 감사합니다. 기본적으로 사용자 인터페이스로드가 끝나면됩니다.

[self.window makeKeyAndVisible] 호출 이후에는 AppDelegate에있을 수 있습니다.
첫 번째 viewController의 viewDidAppear: 메소드에있을 수도 있습니다. 이 옵션을 선택하면 viewDidAppear:을 여러 번 호출 할 수 있습니다.

+0

내 앱의 MakeKeyAndVisible 부분을 찾을 수 없지만 viewDidAppear (첫 번째보기 컨트롤러 내에 표시)에 넣으려고했으나 여전히 빠른 팝업과 사라지는 경고 요청이 발생합니다. –

+0

응용 프로그램을 만들 때 사용한 템플리트는 무엇입니까? – Guillaume

+0

ios 5 SDK의 탭 막대 응용 프로그램이었습니다. –