2012-04-27 5 views
0

내 앱에는 4 개의보기 컨트롤러가 있습니다. 첫 번째 VC는 객체를 인스턴스화하고 "강한"소유권을가집니다. 각각의 VC는 그것들을 각각의 자식 VC에게 넘겨 주며, 그것들은 모두 그 객체와 약한 관계를 가지고 있습니다. 마지막 VC가 완료되고 난 할 때 popToRootViewController 내가 처음으로 새로운 빈 개체를 가질 수 있도록이 개체를 다시 설정할 수있는 마지막 VC를 원한다면 어떻게해야합니까? 개체를 nil로 설정하려고 시도했지만 개체에 새 개체를 할당했지만 슬프게도 작동하지 않습니다. 어떤 아이디어?루트에서 개체 재설정 하위보기 컨트롤러에서 컨트롤러보기

답변

0

대리인을 사용하십시오. 두 번째 VC (즉, 루트의 첫 번째 자식)가 부모를 가리 키도록 설정된 delegate (또는 parent 등)라는 속성을 갖도록 설정합니다. 당신의 약한 참조를 통해 그것을 조정하기보다는 부모에게 그것을 풀어 준 다음, 튀어 나오라고 말한다.

다른 사람들이 부모를 알 필요 없으면 VC에 대한 속성이 있다고 가정하고 UIApplicationDelegate을 통해 직접 상위보기 컨트롤러에 액세스 할 수 있습니다. 사실, 거기에 공유 객체에 대한 참조를 넣고 직접 재설정 할 수 있습니다.

+0

그러나 im 4 컨트롤러가 깊숙한 경우 전체적으로 대리인을 전달해야하며 이는 직관력이 떨어집니다. – nevva

+0

@nevva - 편집 - UIApplicationDelegate를 사용하여 몇 가지 다른 가능성을 참조하십시오. – ckhan

관련 문제