Как получить доступ к контроллеру представления супер?

StackOverflow https://stackoverflow.com/questions/1034106

Вопрос

У меня проблема, и я постараюсь объяснить проблему:

<Ол>
  • У меня есть один основной UIViewController (весь экран)
  • У меня есть один вторичный UIViewController (setbounds)
  • Я добавил свой дополнительный вид в mainView , используя это:

    [mainController.view addSubview:secondaryController.view];   
    
  • Я создал третий контроллер: modalController , я добавил его на свой дополнительный контроллер следующим образом:

    [secondaryController presentModalViewController:modalController animated:YES];
    
  • Я делаю исчисление на основе некоторых событий внутри моего modelController .

  • Я могу отправлять сообщения из моего modalController в мой primaryController , используя:

    [[self parentViewController]  performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
    

    ПРИМЕЧАНИЕ. " self " соответствует modalController

  • Мне нужно передать " myObject " на мой mainController , но я не могу сделать ссылку на мой mainController из primaryController . Я попробовал это:

    [[self parentViewController] performSelector : @selector(myMethodInMainController:) withObject:myObject afterDelay : .5];
    

    ПРИМЕЧАНИЕ. " self " соответствует primaryController

    но это не работает, у меня есть доступ к представлению моего mainController с помощью: self.view.superview

    ПРИМЕЧАНИЕ. " self " мой secondController

  • но нет его контролеру.

    Это было полезно?

    Решение

    В вашем дополнительном контроллере попробуйте

    id mainViewController = [self.view.superview nextResponder];
    

    и убедитесь, что это тот контроллер представления, который вы ищете.

    Документация Apple по - [UIResponder nextResponder] :

      

    UIView реализует этот метод, возвращая объект UIViewController, который управляет им (если он есть) или его суперпредставлением (если он не & tt; & # 8217; t)

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top