2009-06-23 19 views
10

mam problem i postaram się wyjaśnić tę kwestię:Jak uzyskać dostęp do kontrolera widoku super?

  1. Mam jeden główny UIViewController (cały ekran)
  2. mam jeden drugorzędny UIViewController (setbounds)
  3. dodałam mój wtórnego widok do mojego mainView pomocą tego:

    [mainController.view addSubview:secondaryController.view]; 
    
  4. stworzyłem trzeci kontroler: modalController, dodałem go do mojego secondar Kontroler y tak:

    [secondaryController presentModalViewController:modalController animated:YES]; 
    
  5. robię rachunek w oparciu o niektórych wydarzeniach wewnątrz mojego modelController.

  6. jestem w stanie wysyłać wiadomości z mojego modalController do mojego secondaryController używając:

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

    UWAGA: "ja" odpowiada modalController

  7. trzeba przekazać "MyObject", aby mój mainController, ale nie mogę odnieść się do mojego mainController z secondaryController. Próbowałem to:

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

    UWAGA: "ja" odpowiada secondaryController

    ale to nie działa, mam dostęp do widoku Moje mainController w użyciu: self.view.superview

    UWAGA: "Własny" to mój numer secondaryController

, ale nie do kontrolera.

Odpowiedz

32

W swoim drugim kontrolerze, spróbuj

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

i sprawdzić, czy jest to kontroler widok szukasz.

dokumentacji Apple z -[UIResponder nextResponder]:

UIView implementuje tej metody, zwracając obiekt UIViewController, który zarządza go (jeśli posiada) lub jego Superview (jeśli nie)

+1

Thanks Nikolai !!!!!!!!!!!!!!!!! To działało idealnie :) dzięki Pozdrawiam z Guadalajara Meksyk! Alejandra :) – Alejandra

+1

Serdecznie zapraszamy (z Berlina, Niemcy) –

Powiązane problemy