2017-04-26 2 views
1

openInMaps (launchOptions :)를 통해 Maps.app에서 내 ViewController를 열고 앱으로 돌아가거나 돌아갈 때 어떤 라이프 사이클 메소드도 트리거하지 않습니다.iOS MKMapItem의 openInMaps (launchOptions :)가 viewWillDisappear를 트리거하지 않습니다.

예 프로젝트 : https://github.com/raphaelseher/OpenInMaps

예제 코드 : 수

let placeMark = MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: 46.6413035, longitude: 14.2425444)) 
let mapItem = MKMapItem(placemark: placeMark) 
mapItem.name = "Klagenfurt" 
mapItem.openInMaps(launchOptions: nil) 

사람이이 동작입니다 왜 나를 설명하기?

답변

1

앱이 보이는보기 컨트롤러를 변경하지 않았기 때문입니다. 따라서 뷰 컨트롤러 수명주기 이벤트가 트리거되지 않습니다.

그러나 앱 수명주기 이벤트가 실행됩니다. 이들은 기본 알림 센터에 등록하여 관찰 할 수 있습니다. 사용 가능한 모든 이벤트는 UIApplication에 대한 설명서에서 찾을 수 있습니다.

다음과 같은 코드 관찰자 등록 할 수 있습니다

:

NotificationCenter.default.addObserver(self, 
             selector: #selector(self.applicationDidResignActive), 
             name: Notification.Name.UIApplicationWillResignActive, 
             object: nil) 

을 또한 방법 추가 :

func applicationDidResignActive(notification: NSNotification) {  
    // handle event 
} 
관련 문제