Pergunta

Meu aplicativo está usando pushViewController para mostrar o controlador de navegação modalmente

 [navigationController pushViewController:_viewController animated:YES];

O controlador de navegação fez o botão

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];

Quando o botão Concluído é pressionado, desejo que ele navegue de volta para a janela principal

-(void) dismissView: (id)sender

{
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

Mas quando pressiono o botão Concluído, nada acontece.Por que isso?

Foi útil?

Solução

Faça NSLog em seu dissmissView

-(void) dismissView: (id)sender

{
   NSLog(@"Hii....");
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

ou depure o aplicativo com um ponto de interrupção.

Outras dicas

UIButton* backButton = [UIButton buttonWithType:101];

Tenho certeza de que "101" é inválido

+ (id)buttonWithType:(UIButtonType)buttonType

você deve usar um dos seguintes valores UIButtonType

typedef enum {
    UIButtonTypeCustom = 0,
    UIButtonTypeRoundedRect,
    UIButtonTypeDetailDisclosure,
    UIButtonTypeInfoLight,
    UIButtonTypeInfoDark,
    UIButtonTypeContactAdd,
} UIButtonType;

além daquele teste seu código, coloque algum NSLog em seu CC0View: para ver se ele é chamado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top