자식 UIViewController can access it's parent with
parentViewController`를 사용하고 부모에게 메시지를 보내는 데 사용합니다. 이 작업을 직접 수행 할 수는 있지만 ...
상호 작용 수준에 따라 부모 인 UIViewController
이 구현하는 인터페이스를 만드는 것이 가장 좋습니다. 자식 UIViewController
이 부모에 추가되면 인터페이스를 구현하는 객체에 대한 참조를 가져옵니다. 객체간에 강력한 상호 작용을 제공하지만 적절한 캡슐화를 유지하며 위임 패턴입니다.
내 대답은 위임 패턴을 사용할 필요가 없지만 적절한 해결책 인 것처럼 보입니다. 델리게이트 패턴을 사용하지 않는다면 한 쌍의 객체로 자신을 발견 할 수 있습니다. B
가 대리자를 A
에 아이로서 추가됩니다
// Somewhere in your view controller A you want to add B as a child
B *b = [[B alloc] init]; // create view controller B
b.delegate = self; // set up A as the delegate to B
// Add B as child
[self addChildViewController:b];
[self.containerView addSubview:b.view];
가 설정됩니다. A
이 인터페이스를 구현한다고 가정하면 B
은 @property (weak, nonatomic) id<MySomethingDelegate> delegate;
B
과 같은 속성을 가지므로 언제든지 위임 메서드를 호출 할 수 있어야합니다.
출처
2014-02-19 13:41:12
DBD
전화하는 '컨테이너'란 무엇입니까? UIViewController 뒤에 self.view? 명백한 것은 적어도 다른 사람들에게는 분명하지 않습니다. 적어도 나와 같은 바보는 아닙니다. –
MVC. 텍스트 필드의 변경 사항은 어딘가에 모델 클래스에 저장되어야합니다 (전역 적으로 정의 될 수도 있음). 뷰 컨트롤러는이 입력을 관리하고 모델에 있으면 모든 곳에서 볼 수 있습니다. – trojanfoe
@ 트로이의 목소리 이것은 대답이 아닙니다. 나는 데이터를 공유하는 방법을 안다. 나는 어떤 종류의 대의원이 필요합니다. 나는 부모님이 방금 전에 있었던 일에 대해 알리고 싶습니다. l 토마토, 너 바보가 아니야 .. 네가 진술 한 것이 진실이다. 나는 용기보기로 self.view와 함께 간다. – Curnelious