2017-09-21 1 views
1

지금까지 아무 것도 찾을 수 없었기 때문에이 부분을 알아낼 수있는 방향으로 안내하거나 안내 할 수 있다면 크게 감사하겠습니다.어떤 화면 사용자가 앱을 종료했는지 감지

사용자가 어떤보기 컨트롤러에서 종료할지 또는 앱을 종료했는지 (홈 버튼 또는 전화 통화 등을 통해 ... 등)를 감지 할 수 있는지 궁금합니다. 사용자가 한 번에 여러 질문을 서로 물어 보는 게임을하고 있는데 사용자가 첫 번째 질문을보고 잘못 대답하고 두 번째 질문에 답하기 전에 앱을 종료하면 첫 번째 질문에 액세스 할 수 없습니다. 앱 재부팅시 다시 질문하십시오. 이 뷰 컨트롤러에서 앱을 종료하는 경우 사용자가 0 점을 얻도록하고 싶습니다.

+0

을 나는 귀하의 요구 사항이 이동하십시오 주 복원 생각 이 튜토리얼을 통해 https://www.raywenderlich.com/117471/state-restoration-tu 토리아 –

답변

0

이 확장 추가

extension UIApplication { 
    class func topViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? { 
     if let nav = base as? UINavigationController { 
      return topViewController(base: nav.visibleViewController) 
     } 
     if let tab = base as? UITabBarController { 
      if let selected = tab.selectedViewController { 
       return topViewController(base: selected) 
      } 
     } 
     if let presented = base?.presentedViewController { 
      return topViewController(base: presented) 
     } 
     return base 
    } 
} 

을 그리고 당신이 AppDelegatesapplicationDidEnterBackground가 전화에서 :

func applicationDidEnterBackground(_ application: UIApplication) { 
    if let viewController = UIApplication.topViewController() { 
     print(viewController) 
    } 
} 

가 인쇄됩니다

<TestApp.MenuController: 0x7ff2bb501940> 
0

각보기 컨트롤러의 각 viewDidAppear 중에 알림을 보내 사용자가 직접 추적해야합니다. AppDelegate에서 (무언가가 더 좋을 것 같은) 무언가를 가지고 마지막 뷰 컨트롤러에 대한 일부 영구 상태를 듣고 업데이트하십시오.

관련 문제