2013-05-30 7 views
9

All'interno del mio viewDidLoad Vorrei un codice personalizzato basato sul controller precedente.Riferimento al controller della vista sorgente continua

Come posso accedere al controller sorgente di seguito o all'identificatore di sequenza precedente nel viewDidLoad del controller di destinazione per gestirlo?

+1

Intendi nel controller di destinazione? La tua ultima frase non è chiara. – rdelmar

risposta

7

Non c'è modo di ottenere un riferimento al seguito che ti ha creato. Si potrebbe creare una proprietà (sourceVC nel mio esempio) nel controller di destinazione, e assegnare sé a questa proprietà nel metodo prepareForSegue (nel controller visualizza sorgente):

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

Grazie – StuartM

5

È possibile utilizzare solo [self presentingViewController] e sarà possibile accedere al VC che ha emesso il seguito. Di solito mi piace accoppiarlo con isMemberOfClass: per una situazione come questa.

+1

Funzionerà solo se il follow è modale, non funzionerà per un push. – rdelmar

+0

Sembra che stia parlando di un passaggio modale, ma sì, buona call. –

+0

Ottengo il mio rootViewController chiamando questo metodo, quindi sembra che la logica sia un po 'rotta. – Bob

0

eseguire le seguenti operazioni nel metodo segue svolgimento nella destinazione

self.source = (UIStoryboardSegue *)segue.sourceViewController; 

Definire la sorgente come un UIStoryboardSegue nella destinazione. La linea sopra darà la fonte o il precedente.