pushViewController et poptorootViewController
-
29-10-2019 - |
Question
Mon application utilise PushViewController pour afficher le contrôleur de navigation modalement
[navigationController pushViewController:_viewController animated:YES];
Le contrôleur de navigation a fait le bouton
UIButton* backButton = [UIButton buttonWithType:101];
[backButton addTarget:self action:@selector(dismissView:) forControlEvents:UIControlEventTouchUpInside];
[backButton setTitle:@"Done" forState:UIControlStateNormal];
UIBarButtonItem* backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = backItem;
[backItem release];
Lorsque le bouton terminé est enfoncé, je veux qu'il revienne à la fenêtre principale
-(void) dismissView: (id)sender
{
[self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];
}
Mais quand j'appuie sur le bouton Done, rien ne se passe. Pourquoi donc?
La solution
S'il vous plaît nslog dans votre dissmissview
-(void) dismissView: (id)sender
{
NSLog(@"Hii....");
[self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];
}
ou déboguez l'application avec Break Point.
Autres conseils
UIButton* backButton = [UIButton buttonWithType:101];
Je suis sûr que "101" n'est pas valide
+ (id)buttonWithType:(UIButtonType)buttonType
vous devez utiliser l'une des valeurs uibutntonype suivantes
typedef enum {
UIButtonTypeCustom = 0,
UIButtonTypeRoundedRect,
UIButtonTypeDetailDisclosure,
UIButtonTypeInfoLight,
UIButtonTypeInfoDark,
UIButtonTypeContactAdd,
} UIButtonType;
Autre que ce test, votre code a mis du NSLOG dans votre licenciement: pour voir s'il est appelé
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow