보기로 UIView를 초기화하는보기 컨트롤러가 있습니다. 이 뷰는 또 다른 UIView를 하위 뷰로 초기화합니다. 두 UIView는 델리게이트/프로토콜을 통해 View Controller와 통신합니다.두 개의 View Controller 인스턴스간에 값을 공유하는 방법은 무엇입니까?
각각의 UIView는의 ViewController의 인스턴스를 생성하고, 델리게이트는 동일하게 :
ViewController *aDelegate = [[ViewController alloc] init];
self.delegate = aDelegate;
문제 :보기 제어기 모두 UIViews 의해 수정된다 (INT)의 선택이라는 변수를 갖는다. 두 뷰는 서로가 변수를 어떻게 수정했는지를 알아야하지만 각각은 뷰 컨트롤러의 다른 인스턴스를 가지고있어 통신이 불가능합니다. 이 문제를 어떻게 해결할 수 있습니까?
감사 톤
편집 : 피터 내가 좋아하는 뷰 생성시 대리인을 지정 언급,하지만 난 할 것이라고 어떻게 그것이있는 UIView 아닌 뷰 컨트롤러에서 생성되기 때문에 하위 뷰에 대한. 추신. 실제로 그것은 서브 뷰의 서브 뷰의 서브 뷰이므로 뷰 컨트롤러에서 모든 뷰를 만든 다음이를 위임자로 지정할 수 있습니까? 그것은 대신 뷰 컨트롤러의 별도의 인스턴스를 할당하는 각보기의 같은 소리
MyView *mainView = [[MyView alloc] initWithFrame:frame];
self.view = mainView;
mainView.delegate = self;
[mainView release];
가능성이 있습니다. 하나의 ViewController와 두 개의 UIView가 있어야합니다. – joshpaul
그게 내가 가진 서브 뷰가있는 uiview가있는 뷰 컨트롤러이다. – John
가능한 복제본 : http://stackoverflow.com/q/3185760/40175 – Akusete