pushViewController e popToRootViewController
-
29-10-2019 - |
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?
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