2
위치, 알림 및 카메라와 같은 몇 가지 권한을 사용자에게 묻는 보딩을 설정하려고합니다. 세 가지 다른보기 컨트롤러 설정, 각 권한 중 하나를 요청하고 왜 설명합니다. 각각의보기 컨트롤러에는 하단에 "허가 부여"버튼이 있습니다.위치 권한 부여 후 작업을 실행하는 방법 ios
사용자가 버튼을 클릭하면 권한 대화 상자가 나타나고 사용자가 허용을 클릭하면 다음보기 컨트롤러로 전환하고 싶습니다. 여기
내가 지금 무엇을 가지고 : 내가 권한 대화가 팝업 비동기 사용 승인 검사이기 때문에 다음 즉시 닫을 때 작업을 큐에 파견을 사용하지만, 시도했습니다class OnboardingStep2:UIViewController{
override func viewDidLoad() {
self.view.backgroundColor = StyleKit.orangeWhite()
}
@IBAction func getPermission(sender: AnyObject) {
dispatch_sync(dispatch_get_main_queue()) {
let locManager = CLLocationManager()
locManager.requestAlwaysAuthorization()
}
if (CLLocationManager.authorizationStatus() == CLAuthorizationStatus.Authorized) {
self.performSegueWithIdentifier("goToStep3", sender: self)
}
}
}
실행 (나는 추측하고있다). dispatch_sync를 사용하면 대화가 표시되지 않습니다.
가장 좋은 방법은 무엇입니까? 먼저 권한 설정 대화 상자가 표시되고 사용자가 segue (허용)를 클릭하면 허용됩니다. CLLocationManagerDelegate
에
전자 대리인,하지만 때마다 내가 권한을 묻는 버튼을 클릭하면, 허가 대화 상자가 팝업 후 심지어 허용을 클릭하기 전에 잠깐 사라집니다. 이 일의 원인을 아십니까? –
네, 위치 관리자 객체가 범위를 벗어납니다 (함수에만 존재하기 때문에 정리됩니다). 위치 관리자를 인스턴스 변수로 설정하고 다시 시도하십시오. – CodeBender