2014-09-20 3 views
1

인스턴스화보기 나는 내 스토리 보드에서 다음있어 사이에 통신 :는 스토리 보드

enter image description here

ViewA는 컨테이너와의 UIView가 포함되어 있습니다. 컨테이너에는 테이블 뷰 컨트롤러가 내장되어 있습니다.

UIView의 모양에 영향을 줄 수있는 테이블의 액션이 필요하므로 TableView Controller에서 ViewA에 대한 메서드를 호출해야합니다.

나는이 포스트를 따라 갔다. 'Passing Data Back'섹션은 모두 의미가있다. Passing Data between View Controllers 내가 가진 문제는 컨트롤러가 프로그래밍 방식으로 인스턴스화되는 마지막 단계입니다.

스토리 보드 (또는 일부 ios 프레임 워크 구성 요소)가 나를 위해 두 컨트롤러를 인스턴스화합니다.

그래서, 내 질문은 어떻게 자동으로 다른 컨트롤러에서 나를 위해 만든 View 인스턴스에 대한 참조를 얻는 것입니다.

ViewA에서 델리게이트를 설정하기 위해 내 TableViewController에 대한 참조를 얻는 방법은 무엇입니까?

+0

viewA에서 사용자 지정 프로토콜 및 핸드 작성 방법을 사용하거나 알림 처리기 개념을 사용할 수 있습니다. –

답변

2

두 컨트롤러에는 하위 - 부모 관계가 있습니다. 테이블 뷰 컨트롤러에서 self.parentViewController를 사용하여 A에 액세스 할 수 있습니다. A에서 self.childViewController [0]로 테이블 뷰 컨트롤러에 액세스 할 수 있습니다. A에서 prepareForSegue를 구현하고 테이블보기 컨트롤러에 segue.destinationViewController로 액세스 할 수도 있습니다. 거기에 대리인으로 A를 설정해야합니다.

+0

감사합니다. self.parentViewController가 나를 위해 일했습니다. – user568280

0

먼저 UITableViewController에 대한 스토리 보드 식별자를 만들어야합니다. 이것은 당신이 ClassnameViewController의 모든 속성에 액세스 할 수 있습니다 사용하여이 코드를 시도 할 수 있습니다보다

...

ClassnameViewController *instance = (ClassnameViewController *) [self.storyboard instantiateViewControllerWithIdentifier:@"storyboardIdentifierSetByUser"]; 

instance.tableViewObject.delegate = self; 

.