2011-09-30 10 views
7

In UIViewController's documentation, Apple suggerisce di chiamare il super ad un certo punto nella realizzazione di viewWillAppear, viewDidAppear, viewWillDisappear, viewDidDisappear, ecc ... Per esempio, la discussione sulla viewDidDisappear è:Quando si chiama il metodo super in viewWillAppear, viewDidDisappear, ecc ...?

È possibile ignorare questo metodo per eseguire attività aggiuntive associate con la chiusura o la visualizzazione nascosta. Se si sostituisce questo metodo, è necessario che chiami il numero super a un certo punto dell'implementazione.

La mia domanda è cosa importa quando il metodo eccellente viene chiamato e, in caso affermativo, qual è il momento giusto per chiamarlo? Dovrebbe essere super chiamata la prima riga del metodo, l'ultima riga, o da qualche parte nel mezzo a seconda delle tue particolari esigenze?

risposta

7

In viewDidAppear chiamare prima super in modo che le chiamate annullino.

Nel viewWillDisappear sembra essere un sballottare, ho studiato molto e non ho potuto trovare una risposta definitiva e sembra essere 50/50. Ho deciso di chiamare l'ultimo super nel mio codice allo stesso modo che chiamiamo super ultimo in dealloc.

+1

Come sei arrivato a queste regole? – JoJo

+0

In viewDidAppear sembra ovvio che la sottoclasse sia all'altezza della super classe 'così super è chiamata prima. Per quanto riguarda viewWillDisappear, non ho visto nessuna buona ragione in un modo o nell'altro, quindi sono andato con il mio intestino - fino a quando non ho dimostrato che ho sbagliato. :-) Se hai una vista o hai visto una buona spiegazione, per favore pubblica! – zaph

1

In genere li chiamerò prima nella mia implementazione. Nella maggior parte dei casi non dovrebbe avere importanza.

Problemi correlati