2015-01-07 4 views
0

첫 번째 응답자를 사용하는 방법은이 기사를 따르려고합니다.첫 번째 응답자를 사용하여 다른 UIViewController의 메서드를 호출하는 방법

http://www.cocoanetics.com/2012/09/the-amazing-responder-chain/

그리고 뷰 컨트롤러는 네비게이션 컨트롤러 측에서 컨테이너가 존재하는 경우 나

여기서 다른 뷰 컨트롤러에서 구현되는 제 리스폰 메소드를 호출 할 수있을 것 같이 보인다 스토리 보드의 레이아웃은 다음과 같습니다

은 UINavigationController - (관계) -> UITableViewController1 - (푸시) -> UITableViewController2

내가 운전 방식을 구현하고자하는

UITableViewController1

- (void)coolMethod:(id) { ... } 

에서 D 그러나 UITableViewController2에서 메소드를 호출

[[UIApplication sharedApplication] sendAction:@selector(coolMethod:) to:nil from:nil forEvent:nil]; 

내가 원하는 것은 액션 (SendAction)입니다 :에 :에서 : forEvent 다음을 보낼 UINavigationController까지 작업 한 다음 보내십시오. UITableViewController2

가능성을 얻으 려하고 있습니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

(또한, 나는 스토리 보드에 그것을 연결 시도하지만 연결되지 않습니다. 분명히 뭔가 잘못하지만 난 내가 놓친 거지 모르는)

어떤 도움이나 조언은 당신이 나를 크게 될 줄 수 고맙다!

답변

2

응답자 체인이 아닌 VC1은 VC2의 응답자 체인에 있습니다. 당신이 자신의 네비게이션 컨트롤러 하위 클래스를 구현할 수있을 것 같아요. 그러나 좋은 코드는 아닙니다.

설명하는 것은 VC2에 대리자 속성을 부여하고 VC1을 사용하여 VC2를 푸시 할 때 대리자로 설정하는 것이 좋습니다.

+0

VC2를 VC2 용 응답 체인에 어떻게 넣을까요? – DerrickHo328

+0

그렇지 않습니다. 무언가를하려고한다면 탐색 컨트롤러에서 응답 체인에서 튀어 나와 리다이렉트 할 코드를 가지고있을 것입니다 (아마도 올바른 컨트롤러에 대한 검색 논리가있을 것입니다). – Wain

+0

흥미 롭습니다. UIviewControllers를 네비게이션 컨트롤러에 밀어 넣으면 스택에 추가하고 필수적으로 스택을 통과하여 구현하는 사람을 찾을 때까지 이동했다고 가정했습니다. – DerrickHo328

관련 문제