2017-01-30 12 views
1

ViewController F가 ViewController C와 통신하도록하고 싶습니다. 다음과 같이 배열되어 있습니다. Navigation Controller A는 ViewController C를 컨테이너 뷰 내부에 제공합니다. ViewController B에서 NavigationController D, 즉 ViewController E와 ViewController F (E와 F 사이의 구분)가 포함 된 segue가 있습니다. 필요한 ViewControllers 사이에 대표단 "경로"를 구축 :의 ViewController E까지의 ViewController F 위임, 마지막으로 대표되는 정보의 ViewController에 C.는
그것은 느낌의 ViewController B 대의원,2 개 직접 연결된 ViewController 간의 통신

나의 현재 작업 솔루션은 다음과 같다 이렇게 쉬운 방법이 있어야합니다. 추천 할만한가요? 아마도 ViewController C를 ViewController F의 "segue path"안에서 C와 F 사이의 직접적인 위임을 설정하기 위해 넘겨 주겠습니까?

감사합니다.

+0

'communicate'은 무엇을 의미합니까? 메소드를 실행 하시겠습니까? 데이터를 앞뒤로 전달 하시겠습니까? 이벤트에 응답 하시겠습니까? 귀하의 질문은 명확하지 않습니다. 싱글 톤, 위임, NSNotificationCenter와 같은 여러 가지 가능한 방법이 있습니다. –

+0

필자의 경우 통신의 의미 : F는 C의 메소드를 트리거 할 수 있어야하고, 길을 따라 데이터를 전달할 수 있어야합니다. 불분명 한 질문과 그것을 지적 해 주셔서 고마워요. – seb

답변

2

나는의 ViewController F에서 NSNotification

을 사용합니다 :

- (void)sendData { 
    // Fire the notification 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ReceivedData" 
                 object:nil]; 
} 

을의 ViewController C에서 :

- (void)viewDidLoad { 
    [NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(receivedDataNotification:) 
               name:@"ReceivedData" 
               object:nil]; 
} 

- (void)receivedDataNotification:(id)object { 
    NSLog(@"Received Data!"); 
} 
+0

올바른 방향으로 안내해 주셔서 감사합니다! 이제는 [[NSNotificationCenter defaultCenter] postNotificationName : @ "ReceivedData"객체를 사용합니다 : self userInfo : userInfo];' – seb