2013-05-30 11 views
9

W ramach mojego viewDidLoad chciałbym niestandardowy kod na podstawie poprzedniego kontrolera.Odsyłacz do kontrolera widoków źródłowych segue

Jak mogę uzyskać dostęp do kontrolera źródłowego segue lub poprzedniego identyfikatora segue w widokuDidLoad kontrolera docelowego, aby to obsłużyć?

+1

Masz na myśli kontroler docelowy? Ostatnie zdanie nie jest jasne. – rdelmar

Odpowiedz

7

Nie ma sposobu, aby uzyskać odniesienie do segue, która cię stworzyła. Można utworzyć właściwość (sourceVC w moim przykładzie) w kontrolerze docelowym i przypisać własny do obiektu w metodzie prepareForSegue (w kontrolerze źródłowy):

[(DestinationVCClass *)segue.destinationViewController sourceVC] = self; 
+0

Dzięki, że masz – StuartM

5

Możesz po prostu użyć [self presentingViewController], a będziesz mieć dostęp do VC, który wydał segue. Zazwyczaj lubię go łączyć z isMemberOfClass: w takiej sytuacji.

+1

To będzie działać tylko wtedy, gdy segue jest modalne, nie zadziała w przypadku naciśnięcia. – rdelmar

+0

Wygląda na to, że mówi o segmencie modalnym, ale tak, dobry telefon. –

+0

Otrzymuję mój rootViewController przez wywołanie tej metody, więc wydaje się, że logika jest nieco zepsuty. – Bob

0

wykonać następujące czynności w odwijania metody Segue w miejscu docelowym: Zdefiniuj źródło jako UIStoryboardSegue w miejscu docelowym. Powyższa linia podaje źródło lub poprzednią zmianę.