2010-12-09 2 views
1

J'ai actuellement une fenêtre avec une vue qui a trois UIButtons. Lorsque l'utilisateur appuie sur un bouton, je voudrais que la vue change pour une nouvelle vue en utilisant un NavigationController.En appuyant sur UIButton pousse nouvelle vue sur la pile de navigation

Donc maintenant j'ai le bouton A propos codé comme ceci:

UIButton *aboutButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
aboutButton.frame = CGRectMake(236, 240, 60, 60); 
[aboutButton setImage:[UIImage imageNamed:@"About.png"] 
    forState:UIControlStateNormal]; 
[aboutButton addTarget:self action:@selector (aboutButtonPressed) 
    forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:aboutButton]; 

Et pour la fonction d'action:

-(void)aboutButtonPressed { 
    UINavigationController *aboutView =[[UINavigationControlleralloc] initWithNibName:@"About" bundle:nil]; 
    [self.navigationController pushViewController:aboutView animated:YES]; 
    [self.view addSubview:aboutView.view]; 
    [aboutView release]; 
} 

Le fichier About.xib n'a actuellement rien en elle.

Maintenant sur le problème ... Lorsque le bouton est pressé une barre de navigation supérieure apparaît en haut, mais pas dans le sens animé comme je l'ai codé. Il apparaît juste. De plus, il n'y a pas de bouton de retour pour revenir à la vue avec les boutons sur eux. Qu'est-ce que je fais mal? Je peux fournir plus de code ou de détails si ce n'est pas assez clair.

Modifier: Voici une image pour mieux comprendre ce qui se passe.

Après avoir cliqué sur le bouton A propos:

http://dl.dropbox.com/u/1481176/Screen%20shot%202010-12-09%20at%2011.28.40%20AM.png

Edit 2: Suppression du code bancal pour un bouton de retour qui ne devrait pas de là.

Répondre

1

La plupart du code après pushViewController semble douteux.

-(void)aboutButtonPressed { 
    AboutViewController *aboutView =[[AboutViewController **alloc**] initWithNibName:@"About" bundle:nil]; 
    [self.navigationController pushViewController:aboutView animated:YES]; 
    [aboutView release]; 
} 

Cela devrait au moins pousser votre vue vide sur la pile et vous donner automatiquement un bouton de retour.

+0

J'ai enlevé le code du bouton arrière, maintenant il ressemble à ce que vous avez + [self.view addSubview: aboutView.view]; la vue apparaît donc ... mais cela ne fonctionne toujours pas comme prévu. – SalsaSalsa

+0

Ajout d'une photo pour éclaircir un peu ce qui se passe visuellement. – SalsaSalsa

+0

@SalsaSalsa OK maintenant je vois le problème. Avez-vous un contrôleur AboutView? – willcodejavaforfood

Questions connexes