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?

¿Fue útil?

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