2009-03-27 25 views
8

Ho un modo per nascondere il pulsante indietro usato dal controller di navigazione. È impostato dal controller precedente, non da quello che gestisce la vista corrente, e questo rende difficile l'accesso. Avevo bisogno di farlo in modalità di modifica in modo che potessi impedire all'utente di navigare lontano dallo schermo.Esiste un modo migliore per nascondere il parametro BackBarButtonItem?

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];   
} 

Esiste un modo migliore per fare questo?

risposta

44

uso questo per Mostra il pulsante

[self.navigationItem setHidesBackButton:YES] 

uso questo per mostrare pulsante indietro

[self.navigationItem setHidesBackButton:NO] 
+2

Funziona, grazie. C'è una piccola differenza: nessuna animazione. L'ho risolto con queste versioni: [self.navigationItem setHidesBackButton: YES animato: YES]; [self.navigationItem setHidesBackButton: NO animato: YES]; –

+0

Assicurarsi di inserire questo codice nel ViewController in cui si desidera nascondere il pulsante, non il precedente controller (richiesto dalla domanda originale). –

1

Ecco il metodo che uso nel mio controller della vista per mostrare e nascondere il pulsante indietro quando editing è abilitata e disabilitato:

- (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

Effettuare una presa con forte (non debole come impostazione predefinita) del b pulsante ar dallo storyboard al controller di visualizzazione. Lo scopo non è quello di perdere il riferimento quando si imposta il pulsante barra sinistra/destra su zero.

Problemi correlati