2014-01-29 4 views
1

내 간단한 탐색 스타일의 iPhone 앱에서 사용자가 버튼을 누르면 presentViewController를 사용하여 뷰 컨트롤러 V1 (모달리)을 표시합니다.dismisViewController가 첫 번째 응답자 세트를 설정할 때 viewcontrollers를 누설합니다.

사용자가 다른 버튼을 누르면 presentViewController를 사용하여 다른보기 컨트롤러 V2 (모달)를 표시합니다.

나는 그 루트 탐색 컨트롤러에 dismissViewController를 호출하여 한 번에 모두 해제를 시도 예상대로 내가 할당 해제 내가 통해

:-(아무것도 볼 다음 호출 로그인 할 때 그들은 그러나 화면 :-)에서 사라 시행 착오 나는 V1에서 내가 canBecomeFirstResponder == YES를 구현한다는 사실에이 문제를 추적했다. 내가 이것을 NO로 변경하면 모든 것이 적절히 해제된다. 첫 번째 응답자가 V1에 대한 참조를 유지하고있는 것처럼 보인다. V2 나는 V1이 첫 번째 응답을 사퇴하는 것을 본다. 실제로, V2를 제시하지 않으면 V1은 단지 정밀하게 해제 될 것이다./

누구나 이와 같은 것을 보거나 무슨 일이 일어날 지 알 것이다. 에? . 그래서 대표 또는 강한 참조 어디서나)

감사합니다 - 나는 ARC를 사용하고 있는데 아주 간단한 테스트 응용 프로그램의 모든 없다 : 나는 iOS7에

[업데이트에 있어요.

+0

ARC를 사용하고 있습니까? –

+0

안녕 스카티, 대답을 찾았 니? 하위보기 컨트롤러로 추가 된 탐색 컨트롤러와 동일한 문제가 있습니다. – hybridcattt

답변

1

V2를 표시하기 전에 먼저 V1을 닫지 마십시오. 그러면 루트로 돌아 가기 위해 V2를 기각하면됩니다.

+0

기술적으로는 가능합니다. 그러나 유효한 UI (모달 뷰 컨트롤러를 제공하는 많은 내장 애플 리케이션 중 하나, 예를 들어 다른 메일 상단에있는 것)가 많기 때문에 실망 할 수 있습니다. Apple docs는 또한 이것이 가능해야한다고 말합니다 dismissViewController를 사용하여 한 번에 모든 VC를 닫을 수 있습니다. – Scotty

0

네비게이션 컨트롤러에서 poptorootviewcontroller를 호출하기 전에 호출하십시오.

+0

아무런 차이가 없습니다 ... – Scotty

+0

마음을 공유하는 코드가 있습니까? –