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];
¿Fue útil?

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
scroll top