2015-11-20 6 views
0

Я строю иерархию контроллера вида. У меня есть контроллер детского представления 2 уровня, расположенный глубоко от контроллера вида контейнера.Связь контроллера дочернего представления с контроллером контейнера

Этот контроллер детского вида имеет кнопку для выполнения определенного действия.

Каков наилучший способ сообщить об этом контроллеру контейнера. Я попытался отправить сообщение, используя цепочку ответчиков. Наличие делегата кажется супер сложным, учитывая, что он находится на 2 уровнях. Есть ли лучший способ?

ответ

0

Вы можете использовать эту функцию, чтобы найти содержат ViewController, замените ContainViewController с классом у вас есть

- (ContainViewController *)containViewController 
{ 
    UIViewController *iter = self.parentViewController; 
    while (iter) { 
     if ([iter isKindOfClass:[ContainViewController class]]) { 
      return (ContainViewController *)iter; 
     } else if (iter.parentViewController && iter.parentViewController != iter) { 
      iter = iter.parentViewController; 
     } else { 
      iter = nil; 
     } 
    } 
    return nil; 
} 
Смежные вопросы