2012-05-21 23 views
5

¿Cuándo debe llamar al ReleaseDesignerOutlets para una clase de IU de guión gráfico personalizado cuando no es un UIViewController y, por lo tanto, no tiene un método ViewDidUnload?Cuándo llamar a ReleaseDesignerOutlets cuando ViewDidUnload no existe

Fx. Tengo una clase UITableViewCell personalizada, y quiero liberar mis puntos de venta. Puedo ver que hay un método protected void Dispose(bool disposing), pero no puedo determinar si anular este método es la forma correcta de hacerlo.

+0

Tan pronto como sepa, no tiene que manejar la eliminación o liberación de la UITableViewCell. El desecho ya se llama después de la creación de la celda, incluso si todavía se muestra. La vista de tabla libera celdas automáticamente cuando hay memoria requerida (si no realiza asignaciones estáticas) y puede volver a cargar celdas existentes con el método tableView.DequeueReusableCell ("MyCustomCell") en el método GetCell de su UITableViewSource. – Theos

Respuesta

0

En ausencia de ViewDidUnload Estoy liberando mis enchufes cuando mi controlador de vista se elimina de la pila de navegación. Lo cual solo funcionará cuando use un NavigationController o con PresentViewController. El padre será nulo en ese caso.

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

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


protected void Cleanup() 
{ 
    CleanupBindings(); 

    ReleaseOutlets(); 
} 
Cuestiones relacionadas