Eliminar alguna vista de un controlador de vista
-
03-07-2019 - |
Pregunta
Quiero eliminar la subvista actual (agregada atIndex: 0) de mi controlador de vista raíz e insertar una nueva vista en su lugar.
Actualmente solo puedo encontrar fragmentos de código que muestren la descarga de una vista usando removeFromSuperView, que requiere que sepas qué vista de los controladores de vista está cargada actualmente.
Lo único que hay que tener en cuenta es que tengo otra subvista insertada en la vista de los controladores de raíz que no quiero que se descargue. Por lo tanto, el código que elimina todas y cada una de las subvistas no es adecuado
Gracias,
m
if(self.firstscr == nil)
{
firstscreen *f = [[firstscreen alloc] initWithNibName:@"firstscreenview" bundle:nil];
self.firstscr = f;
[f release];
}
///This is my attempt at getting to the currently loaded view :P
[[self.view subviews atIndex:0].view removeFromSuperView];
[self.view insertSubview:firstscr.view atIndex:0];
Solución
Aquí está cómo hacerlo (lo descubrí, ¡sí, yo!)
if(self.firstscr == nil)
{
firstscreen *f = [[firstscreen alloc] initWithNibName:@"firstscreenview" bundle:nil];
self.firstscr = f;
[f release];
}
//Remove whatever view is currently loaded at index 0, this index is only to be used by "page" views
UIView *v = [self.view.subviews objectAtIndex:0];
[v removeFromSuperview];
[self.view insertSubview:firstscr.view atIndex:0];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow