2009-03-01 9 views
1

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

Actuellement, je ne peux trouver que des extraits de code montrant le déchargement d'une vue en utilisant removeFromSuperView, ce qui nécessite que vous sachiez 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. Ainsi, le code qui supprime tout et tous les sous-vues ne suffit pas

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]; 

Répondre

1

Voici comment faire (j'ai tout compris, Yey moi!)

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]; 
Questions connexes