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?

Était-ce utile?

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
scroll top