2009-03-27 11 views
8

Mam sposób na ukrycie przycisku wstecznego używanego przez kontroler nawigacyjny. Jest ustawiany przez poprzedni kontroler, a nie ten, który zarządza bieżącym widokiem, a to sprawia, że ​​trudno jest się do niego dostać. Musiałem to zrobić w trybie edycji, aby uniemożliwić użytkownikowi nawigację poza ekranem.Czy istnieje lepszy sposób, aby ukryć backBarButtonItem niż to?

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

Czy jest lepszy sposób to zrobić?

Odpowiedz

44

użycie tego ukryć Wstecz

[self.navigationItem setHidesBackButton:YES] 

wykorzystanie tego, aby pokazać przycisk BACK

[self.navigationItem setHidesBackButton:NO] 
+2

To działa, dziękuję. Jest jedna mała różnica - brak animacji. Rozwiązałem to w tych wersjach: [self.navigationItem setHidesBackButton: YES animated: YES]; [self.navigationItem setHidesBackButton: NO animated: YES]; –

+0

Pamiętaj, aby umieścić ten kod w ViewController, gdzie chcesz ukryć przycisk - a nie poprzedni kontroler (wymagane oryginalne pytanie). –

1

Oto metoda używam moim zdaniem regulatora, aby pokazać i ukryć przycisk wstecz podczas edycji jest włączona i wyłączone:

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

Stwórz gniazdko z mocnym (nie słabym domyślnie) b przycisk ar od storyboardu do kontrolera widoku. Celem nie jest utrata odniesienia, gdy lewy/prawy przycisk paska jest ustawiony na zero.

Powiązane problemy