2010-11-29 9 views
0

J'ai un UINavigationController. J'ai un UIViewController que j'ai poussé sur la pile en utilisant pushViewController. Le contrôleur de vue précédent a un backBarButtonItem simplement intitulé "Annuler".UINavigationController ne s'ouvre pas sur le bouton de retour

Alors que la nouvelle vue s'anime correctement, lorsque je clique sur Annuler, la barre de navigation s'anime comme si la vue avait été coupée, mais la nouvelle vue ne disparaît pas. Ai-je besoin de mettre en place un délégué quelque part?

Répondre

1

Essayez ceci,

d'abord créer un UIButton puis créez un UIBarButtonItem avec vue sur mesure, compte tenu UIButton comme vue personnalisée pour UIBarButtonItem.

Considérer le bouton pour cibler l'événement pour le contrôleur de vue éclatée.

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 35, 35);
[button setImage:[UIImage imageNamed:@"dots.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(backBarButton:) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];

self.navigationItem.leftBarButtonItem = backBarButton;

- (void)backBarButton:(id)sender {
NSLog(@"%s", __FUNCTION__);
self.navigationController.navigationBarHidden = YES;
[self.navigationController popViewControllerAnimated:YES];
}

+0

je pense que ce pourrait être une réponse plus simple. Il suffit d'ajouter [self.navigationController popViewControllerAnimated: YES]; appeler dans le bouton cliqué sur l'événement permettrait de résoudre le problème. – marionmaiden

Questions connexes