2011-11-26 9 views
5

Se si implementa willMoveToSuperview in una sottoclasse UIView, è garantito il richiamo (con nil) quando viene visualizzato il numero removeFromSuperview?IsMoveToSuperview ha chiamato (con nil) durante la rimozione di una vista da una gerarchia?

I documenti dicono che il parametro newSuperview può essere nil e che si chiama "ogni volta che cambia Superview" ma non sono sicuro di poter interpretare questo a significare che sarà chiamato quando la vista viene rimossa dalla sua superview anche quando non viene spostato in un'altra superview.

risposta

13

Ogni volta che una vista riceve removeFromSuperview e la vista della vista non era già nulla, la vista sarà sempre [self willMoveToSuperview:nil].

+0

Si suppone che la vista sia ancora conservata? Se la sua vecchia super vista è l'unico proprietario, la vista sparirà per sempre dopo 'removeFromSuperview', giusto? – Philip007

+0

Il metodo 'removeFromSuperview' invia' willMoveToSuperview: 'e' didMoveToSuperview' a 'self' prima di rilasciare' self'. Se la superview avesse l'unico riferimento forte alla sottoview, la sottoview riceverà i messaggi prima di essere deallocati. –

Problemi correlati