2016-09-05 5 views
1

저장 및 응용 프로그램 상태를 구현하려고합니다. 나는 그 애플 리케이션 대리인의 메서드에서 메서드를 수집 shouldSaveApplicationState: 상태를 저장하고보기 컨트롤러에 대한 복원 ID를 설정 제공, application:shouldRestoreApplicationState: 다시 활성 상태로 돌아갈 때 당신이보기 컨트롤러로 데려다 줄 것입니다.IOS : 응용 프로그램 상태를 복원하는 방법

그러나 홈 버튼을 사용하여 앱을 고의로 종료 한 경우 (예 : 전화를 걸거나 사파리에서 무언가를 확인) - 앱으로 돌아 가면 초반부에 내가 가지고 있었던 위치가 표시됩니다. 되었지만 초기보기 컨트롤러에서 다시 시작됩니다.

이것은 사용자에게 불쾌감을 주며 사용자가 자신이 있던 곳으로 돌아가는 데 어려움을 겪을 필요가있을 때 분명히 차선책입니다.

해고 될 때 application:shouldRestoreApplicationState:을 로그 아웃하면이 경우에는 발생하지 않습니다. 이는 분명히 디자인에 따라 question 상태입니다.

내 상태를 검색하기 위해이 메서드를 강제로 호출 할 수있는 방법이 있습니까? 또는 앱이 들어오는 통화로 인해 앱이 중단되는 대신 적극적으로 앱을 나가는 경우 앱의 현재 위치로 돌아갈 수있는 방법은 무엇입니까?

고맙습니다.

답변

1

이것은 내 부분에서 오류로 판명되었습니다. 방법 application:shouldRestoreApplicationState:이 집 버튼을 누른 후 다시 시작한 후에 실행되지 않는 이유는 applicationDidBecomeActive:(UIApplication *)application 파일의 appDelegate 파일의 메소드가 수명주기의 초기에 시작되어 해당 응용 프로그램을 시작 페이지로 리디렉션했기 때문입니다. 나는이 문제를 applicationDidBecomeActive의 번거로운 리디렉션을 수명주기의 복원 방법 이후에 오는 applicationDidFInishLaunching으로 옮겨서 수정했다. 이로 인해 shouldRestoreApplicationState이 발생했습니다.

메모 : 복원 방법 실행에 대한 한 가지 예외로, 홈 버튼을 누르면 강제 종료되지 않습니다.

관련 문제