En iOS, ¿cómo se elimina la subvista?

Las subvistas, extrañamente, se eliminan. Digo “extrañamente” porque ViewController o la vista en sí agrega una subvista. Pero tiene que funcionar de esa manera porque el controlador de vista podría no estar disponible para eliminar la vista, y la vista tiene muchas vistas para eliminar, por lo que sería más trabajo para la vista hacerlo.

Pero de todos modos, para responder a su pregunta, la forma en que siempre lo hago es

  1. Ocultar la vista que desea eliminar
  2. Llame al método removeFromSuperview de la vista
  3. Establecer la vista en nulo

Asi que

  1. yourSubview.hidden = YES;
  2. [yourView removeFromSuperview];
  3. yourView = nil;

Tenga en cuenta que si está haciendo esto en un bloque, es posible que deba etiquetar la vista como __bloque. También asegúrese de que esto suceda en el hilo principal, ya que está cambiando la interfaz de usuario.

No creo que sea estrictamente necesario establecerlo en cero, ya que el objeto finalmente se desasignará, pero lo veo como una buena práctica.