2016-10-25 3 views
1

내 응용 프로그램의 상태 복원을 사용하고 있습니다. vc1 -> vc2 -> vc3 있습니다.중간 뷰 컨트롤러가 복원되는 이유는 무엇입니까?

vc3에서 복원 대리자 및 복원 식별자를 구현했습니다. 하지만 vc1과 v2에서는 식별자 만 구현했습니다.

vc3에 도달하면 복원 된 상태가됩니다. 그러나 vc2에 도달하면 복원됩니다. 복원 식별자 만 설정되어 있습니다. 중간 뷰 컨트롤러도 복원됩니까? 나는 그것을 원하지 않는다.

답변

0

기본적으로 UIKit은 재사용 식별자가 설정된보기 컨트롤러 (서브 뷰 포함)를 복원합니다. 귀하의 경우 세 가지보기 컨트롤러의 식별자를 모두 설정했습니다. vc3에 대해서만 UIStateRestoration 메서드를 구현 했더라도 모든 VC가 복원 될 것입니다.

당신은 VC2 혼자에 대한 ReuseID을 제거하려고하고 재사용 ID로 그대로 VC3으로, 방법을 귀하의 응용 프로그램을 실행할 수 있습니다. vc2에는 재사용 ID가 없으므로 UIKit은 복원에 신경을 쓰지 않습니다.

1 VC3 복원 할 것이며, 당신이 버튼을 다시 누르면 직접 VC1

2로 이동합니다 : 당신이 VC2 위해 재사용 ID를 제거 가능한 결과는 다음 중 하나가 될 것입니다. vc1 만 복원됩니다.