volver sirven que para los inicio home gestos flotante desactivar como boton atras assistive ios objective-c uinavigationcontroller

ios - sirven - UINavigationController y la acción del botón de retroceso



gestos iphone 7 (7)

Cree su propio UIBarButtonItem y UIBarButtonItem como leftBarButtonItem en el método mainController de mainController .

Por ejemplo (aquí utilicé un elemento del sistema pero también puede crear uno diferente, vea la referencia de clase para más detalles).

UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(showAlertView:)]; self.navigationItem.leftBarButtonItem = leftBarButtonItem; // only if you don''t use ARC // [leftBarButtonItem release];

dónde

- (void)showAlertView:(id)sender { // alert view here... }

Tengo dos controllers primero es self y el segundo es el maincontroller , donde estoy presionando el maincontroller en la pila , por lo que el botón de retroceso viene automáticamente.

Aquí necesito hacer una alerta cuando el usuario presiona el botón Atrás.

¿Cómo puedo hacer esto?


O puede usar los métodos delegados de UINavigationController . El método willShowViewController se llama cuando se presiona el botón Atrás de su VC.

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;


Primero esconde el botón Atrás usando

self.navigationItem.hidesBackButton = YES;

y luego crea tu propio botón personalizado:

UIBarButtonItem *backBtn =[[UIBarButtonItem alloc]initWithTitle:@"back" style:UIBarButtonItemStyleDone target:self action:@selector(popAlertAction:)]; self.navigationItem.leftBarButtonItem=backBtn; [backBtn release];

y tu selector está aquí:

- (void)popAlertAction:(UIBarButtonItem*)sender { //Do ur stuff for pop up }


agregue un botón de retroceso personalizado con una acción y configure su alerta en ese método de acción. Puede agregar su botón Atrás personalizado desde aquí: http://www.applausible.com/blog/?p=401


crea un botón y aplica la acción del botón de la siguiente manera.

[self alert];

y cuando se muestra la alerta, después de tocar sobre sí

[self.navigationController popViewController];

después de este,

self.navigationController.LeftBarButton = myButton;

esto puede ayudar


La mejor y más fácil manera

Intenta poner esto en el controlador de vista donde deseas detectar la prensa:

-(void) viewWillDisappear:(BOOL)animated { if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { // back button was pressed. We know this is true because self is no longer // in the navigation stack. } [super viewWillDisappear:animated]; }


viewControllerCount : es la var que contiene el número de viewControllers que anteriormente estaba en el UINavigationController. Luego, verificamos si viewControllerCount> [viewControllers count] si es así, sabemos que regresaremos (es decir, imitación del botón Atrás).

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { NSArray *viewControllers = [navigationController viewControllers]; if (viewControllerCount > [viewControllers count]) { // your code } viewControllerCount = [viewControllers count]; }