pushViewController y popToRootViewController
-
29-10-2019 - |
Pregunta
Mi aplicación está usando pushViewController para mostrar el controlador de navegación de forma modal
[navigationController pushViewController:_viewController animated:YES];
El controlador de navegación ha terminado el botón
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];
Cuando se presione el botón Listo, quiero que vuelva a la ventana principal
-(void) dismissView: (id)sender
{
[self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];
}
Pero cuando presiono el botón Listo, no pasa nada.¿Por qué es eso?
Solución
Por favor NSLog en su dismissView
-(void) dismissView: (id)sender
{
NSLog(@"Hii....");
[self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];
}
o depurar la aplicación con punto de interrupción.
Otros consejos
UIButton* backButton = [UIButton buttonWithType:101];
Estoy bastante seguro de que "101" no es válido
+ (id)buttonWithType:(UIButtonType)buttonType
debe utilizar uno de los siguientes valores de UIButtonType
typedef enum {
UIButtonTypeCustom = 0,
UIButtonTypeRoundedRect,
UIButtonTypeDetailDisclosure,
UIButtonTypeInfoLight,
UIButtonTypeInfoDark,
UIButtonTypeContactAdd,
} UIButtonType;
Aparte de eso, prueba tu código, pon algo de NSLog en tu vista de despido: para ver si se llama
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow