2017-05-22 5 views
0

내부에 여러보기 컨트롤러가있는 탐색 컨트롤러가 있습니다.iOS - 상태 복원 - 이전에 복원 된보기 컨트롤러 가져 오기

application(_:viewControllerWithRestorationIdentifierPath:coder:) 메서드를 복원하는 동안 처음에는 스택에서 첫 번째로, 다음으로 두 번째로 차례로 각 컨트롤러를 호출합니다. 두 번째보기 컨트롤러를 복원 할 때 첫 번째 컨트롤러에 대한 참조를 가져와야합니다.

이 컨트롤러를이 어딘가에 앱에 저장하지 않고 이전에 복원 한 컨트롤러를 가져 오는 방법이 있습니까? (동일한 것은 내비게이션 컨트롤러에 관한 것입니다. 앱의 어느 곳에서나 지시 대상을 저장하지 않습니다.)

답변

0

앱을 배경으로 보내기 전에 마지막으로 본 View Controller 만 인코딩하면 인코딩/NSCoder를 사용하여 위에 나열된 방법을 디코딩하십시오. 하지만 여전히 자신의 데이터를 저장해야합니다. 응용 프로그램이 사용자에 의해 종료되거나 장치가 재부팅 될 경우를 대비하여 NSKeyedArchiver 또는 Core Data를 사용합니다. 이것은 귀하의 경우에 가장 적합한 해결책 일 수 있습니다. 여기 encodeRestorableState에 대한

참조 링크 :

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621461-encoderestorablestate

이 구체적으로 말한다는 :

이 방법은 디스크에 구조를 지속적으로 앱의 데이터를 저장하기위한 대체하지 않습니다. 기존 기술을 사용하여 앱의 실제 데이터를 iCloud 또는 로컬 파일 시스템에 계속 저장해야합니다. 이 방법은 구성 상태 또는 앱의 사용자 인터페이스와 관련된 기타 정보를 저장하는 용도로만 사용됩니다. 은 코더에 쓰는 데이터를 삭제할 수있는 데이터로 간주하고 후속 실행 중에는 사용할 수 없도록 준비해야합니다 ( ).