2017-01-27 5 views
0

사용자가 앱을 처음 실행할 때 알림을 사용하여 사용 방법에 대한 설명을 제공하려고합니다. 나는 'SCAlertView'포드를 사용하고 있습니다. viewDidLoad() 또는 ViewWillAppear() 섹션에 코드를 배치하면 코드가 실행되지 않지만 권한을 테스트하면 코드가 실행됩니다. 여기 다음 코드기기 사용 권한 한 후에 alertView를 실행합니다. iOS

입니다
override func viewDidLoad() { 
    super.viewDidLoad() 

    if defaults.bool(forKey: "launchedBefore") == false{ 
     let alert = SCLAlertView() 
     alert.showInfo("Welcome to \(appName)", subTitle: "Swipe up on the bottom green button to find all your tools to navigate the app!") 
    } 

사람이 코드는 카메라 & 마이크 권한 후 실행 얻을 수있는 방법에 대한 제안 사항이 있습니까?

+1

'viewDidLoad' 또는'viewWillAppear' 내에서 경고를 표시하지 마십시오. 귀하의보기가 아직 인터페이스에 없습니다. 'viewDidAppear' 때까지 기다리십시오. – matt

+0

어디서 launchBefore 값을 설정합니까? –

+0

미안하지만, 원래 코드는 'ViewDidAppear'@matt에있었습니다. – Onicha21

답변

0

권한이 부여 된 지식이 비동기 적으로 발생할 수 있기 때문에 권한 요청 직후 무언가를하는 것은 매우 까다 롭습니다. 내 솔루션은 완료 핸들러를 받아들이고 필요한 경우 권한 요청 경고를 소환하는 권한 상태를 확인하는 유틸리티 함수를 작성하는 것입니다. 그런 다음 권한이 있거나 권한이 부여 된 경우에만 완료 핸들러를 호출합니다.

+0

전체 예제 코드는 다음과 같습니다. https://github.com/mattneub/Programming-iOS-Book-Examples/blob/ master/bk2ch17p702take 사진/ch30p962take 캡처/ViewController.swift – matt

+0

@matt의 제안으로 특정 질문이 해결 되었습니까? 그렇다면 올바른 것으로 표시하십시오. 그렇지 않다면 저희에게 알려 주시면 도와 드리겠습니다. –