2012-05-21 11 views
5

Quando si deve chiamare ReleaseDesignerOutlets per una classe di interfaccia utente storyboard personalizzata quando non è un UIViewController e quindi non ha un metodo ViewDidUnload?Quando chiamare ReleaseDesignerOutlets quando ViewDidUnload non esiste

Fx. Ho una classe UITableViewCell personalizzata e voglio rilasciare i miei outlets. Vedo che c'è un metodo protected void Dispose(bool disposing), ma non riesco a capire se sovrascrivere questo metodo è il modo corretto di farlo.

+0

Per quanto ne so, non è necessario gestire lo smaltimento o il rilascio di UITableViewCell. Lo smaltimento è già chiamato dopo la creazione della cella, anche se è ancora visualizzato. La tableview sta rilasciando automaticamente le celle quando è richiesta memoria (se non si effettuano assegnazioni statiche) e si può ricaricare celle esistenti con il metodo tableView.DequeueReusableCell ("MyCustomCell") nel metodo GetCell di UITableViewSource. – Theos

risposta

0

In assenza di ViewDidUnload sto rilasciando le mie prese quando il mio controller di visualizzazione viene rimosso dallo stack di navigazione. Che funzionerà solo quando si usa un NavigationController o con PresentViewController. Il genitore sarà nullo in questo caso.

public override void DidMoveToParentViewController(UIViewController parent) 
{ 
    base.DidMoveToParentViewController(parent); 

    if(parent == null && cleanupOnNavigationStackRemoval) 
    Cleanup(); 
} 


protected void Cleanup() 
{ 
    CleanupBindings(); 

    ReleaseOutlets(); 
} 
Problemi correlati