2017-01-30 6 views
1

Я хочу, чтобы ViewController F общался с ViewController C. Они расположены следующим образом: Контроллер навигации A включает ViewController B, который представляет ViewController C внутри представления контейнера. . С точки зрения контроллера ViewController B навигационный контроллер D, который включает в себя ViewController E и ViewController F (segue между E и F), есть segue.Связь между двумя напрямую не подключенными ViewControllers

Мой текущий рабочий раствор состоит в следующем: Стройте делегации «путь» между необходимыми ViewControllers: ViewController F делегатов ViewController Е, делегатов ViewController В, что, наконец, делегирует информацию ViewController C.
It Feels например, должен быть более простой способ сделать это. Вы можете порекомендовать его? Возможно, передайте ViewController C внутри «segue path» в ViewController F, чтобы настроить прямое делегирование между C и F?

Спасибо!

+0

Что 'communicate' значит? Выполнить методы? Передавать данные взад и вперед? Отвечать на события? Ваш вопрос непонятен. Существует много возможных методов, таких как синглтоны, делегирование, 'NSNotificationCenter'. –

+0

В моем случае коммуникационные средства: F должен иметь возможность запускать метод C, а также передавать данные по пути. Извините за непонятный вопрос и спасибо за указание на это! – seb

ответ

2

Я хотел бы использовать NSNotification

В ViewController F:

- (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 "object: self userInfo: userInfo];' – seb

Смежные вопросы