Question

Je souhaite supprimer la sous-vue actuelle (ajoutée à atIndex: 0) de mon contrôleur de vue racine et insérer une nouvelle vue à sa place.

Actuellement, je ne trouve que des extraits de code qui montrent le déchargement d'une vue à l'aide de removeFromSuperView, ce qui vous oblige à savoir quelle vue viewcontrollers est actuellement chargée.

La seule autre chose à noter est que j'ai une autre sous-vue insérée dans la vue rootcontrollers que je ne veux pas décharger. Donc, le code qui supprime toutes les sous-vues n’est pas adéquat

Merci,

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];
Était-ce utile?

La solution

Voici comment le faire (je l'ai compris, Yey me!)

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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top