2010-11-05 6 views
0

Dans mon contrôleur de vue de table, j'ai un bouton qui quand je presse, je veux qu'il montre la vue de la carte, donc je viens de faire ce qui suit. Cependant, pour une raison quelconque, il n'est pas montrer la vue ... pourquoi est-ce>bringSubviewToFront ne montre pas sa vue

- (void)viewDidLoad { 
    mapViewController = mapViewController = [[MapViewController alloc] init]; 
    [super viewDidLoad]; 
} 

-(IBAction) toggleAction:(id) sender { 
    [self.view bringSubviewToFront:mapViewController.view]; 
    self.navigationItem.backBarButtonItem = nil; 

} 

Répondre

2

Vous devez ajouter le point de vue en tant que sous-vue:

-(IBAction) toggleAction:(id) sender { 
    [self.view addSubView:mapViewController.view]; 
    self.navigationItem.backBarButtonItem = nil; 

} 

Retirez ensuite le renvoi (removeFromSuperView) .

+0

quelle est la différence entre bringSubViewToFront? – aherlambang

+1

bringSubViewToFront ne fonctionnera que si la vue en question existe déjà dans le tableau des sous-vues. Vous avez créé un viewcontroller mais n'a jamais ajouté sa vue aux sous-vues de la vue en cours. Ainsi, bringSubViewToFront a été appelé sur une vue qui n'a été placée nulle part. addSubView place la vue dans le tableau des sous-vues et, par défaut, la rend visible. – Ben

+0

ok .. donc j'ai besoin d'ajouter et de supprimer la vue d'avant en arrière si je le veux pour aller voir la carte et la vue de la table? – aherlambang