2009-03-27 14 views
8

Tengo una forma de ocultar el botón de retroceso utilizado por el controlador de navegación. Lo establece el controlador anterior, no el que administra la vista actual, y eso dificulta el acceso. Necesitaba hacer esto en el modo de edición para evitar que el usuario salga de la pantalla.¿Hay una mejor manera de ocultar BackBarButtonItem que esto?

if(self.editing) { 
    // Get rid of the back button 
    UIView *emptyView = [[UIView alloc] init];; 
    UIBarButtonItem *emptyButton = [[[UIBarButtonItem alloc] initWithCustomView:emptyView] autorelease]; 
    [self.navigationItem setLeftBarButtonItem:emptyButton animated:YES]; 
} else { 
    // Restore the back button 
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];   
} 

¿Hay una manera mejor de hacer esto?

Respuesta

44

uso esta opción para ocultar el botón atrás

[self.navigationItem setHidesBackButton:YES] 

uso esto para mostrar botón de retroceso

[self.navigationItem setHidesBackButton:NO] 
+2

Eso funciona, gracias. Hay una pequeña diferencia: sin animación. Lo resolví con estas versiones: [self.navigationItem setHidesBackButton: YES animated: YES]; [self.navigationItem setHidesBackButton: NO animado: SÍ]; –

+0

Asegúrese de poner este código en ViewController donde desea que se oculte el botón, no el controlador anterior (que la pregunta original requería). –

1

Aquí está el método que utilizo en mi controlador de vista para mostrar y ocultar el botón de retroceso cuando está activado la edición y deshabilitado:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    if (editing) { 
     // Disable the back button 
     [self.navigationItem setHidesBackButton:YES animated:YES]; 
    } 
    else { 
     // Enable the back button 
     [self.navigationItem setHidesBackButton:NO animated:YES]; 
    } 

    [super setEditing:editing animated:animated]; 
} 
0

Realice una salida con fuerte (no débil como predeterminado) de la b ar botón desde el guión gráfico a su controlador de vista. El propósito no es perder la referencia cuando establece el botón de la barra izquierda/derecha en cero.

Cuestiones relacionadas