나는 내보기 [Will/Did] 앱에 반환 할 때 Disappear 메서드가 실행되지 않는 문제가있는 응용 프로그램에서 작업합니다.viewDidDisappear가 호출되지 않았습니다.
이 케이스에는 두 개의보기 컨트롤러가있는 UINavigationController가 있습니다. 사용자가 홈 버튼을 누르면 사용자는 로그 아웃됩니다. 그가 나중에 응용 프로그램에 반환하는 경우, 다음 (간체) 코드 내 AppDelegate에에서 실행 :
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[(UINavigationController *)self.window.rootViewController popToRootViewControllerAnimated:NO];
[self.window.rootViewController presentModalViewController:loginViewController animated:NO];
}
내 탐색 컨트롤러 스택 뷰 컨트롤러를 팝업 때, 나는 view[will|did]disappear
메소드가 호출 될 것으로 기대한다. 그러나 iOS가 이러한 메소드를 실행하려고 할 때 (더 이상 화면에 표시되지 않기 때문에) 그렇지 않습니다. 모달 뷰 컨트롤러가 인계받은 것 같습니다.
모달보기 컨트롤러를 제공하지 않으면 view[will|did]disappear
메서드가 예상대로 호출됩니다.
내 질문은 : view[will|did]disappear
메서드를 호출하려면 어떻게해야합니까? 그러면 코드를 구조화 할 수 있습니까? 내 모달 loginViewController를 제공 할 수있는 더 좋은 곳이 있습니까?
편집 : 더 명확하게 내 문제를 보여주기 위해
, 나는 여기 아주 간단한 테스트 프로젝트를 만들었습니다 https://github.com/JohanVase/ModalViewCauseMissingViewDisappearCalls합니다. 앱의 안내에 따라 몇 번 시도해보고 viewWillDisappear 메소드에서 내 "리소스"를 공개하지 않는지 확인하십시오.
해당보기 컨트롤러가 먼저 표시 되었습니까? IMHO 응용 프로그램이 활성화되고 즉시 루트보기 컨트롤러로 이동하면 누적 된 viewControllers가 표시되지 않고 연속적으로 사라질 수 있습니다. –
수동으로 호출하면 충분합니까? [someViewController viewDidDisappear]; – carlossless
'viewDidDisappear'에서 뭐하고 있니? –