2009-03-27 17 views
8

Ich habe eine Möglichkeit, den Zurück-Button des Navigationscontrollers zu verbergen. Es wird vom vorherigen Controller festgelegt, nicht von dem, der die aktuelle Ansicht verwaltet, und das macht es schwierig, dorthin zu gelangen. Ich musste dies im Bearbeitungsmodus tun, um zu verhindern, dass der Benutzer vom Bildschirm weg navigiert.Gibt es eine bessere Möglichkeit, das backBarButtonItem zu verbergen?

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

Gibt es einen besseren Weg, dies zu tun?

Antwort

44

Verwendung dieser Taste diese

[self.navigationItem setHidesBackButton:YES] 

Gebrauch zu verbergen Zurück-Taste

zeigen zurück
[self.navigationItem setHidesBackButton:NO] 
+2

Das funktioniert, danke. Es gibt einen kleinen Unterschied - keine Animation. Ich habe das mit diesen Versionen gelöst: [self.navigationItem setHidesBackButton: YES animiert: YES]; [self.navigationItem setHidesBackButton: NO animiert: YES]; –

+0

Achten Sie darauf, diesen Code in den ViewController zu setzen, wo die Schaltfläche ausgeblendet werden soll - nicht der vorherige Controller (was die ursprüngliche Frage erfordert). –

1

Hier ist die Methode, die ich in meiner Ansicht-Controller verwenden die Zurück-Taste ein- und ausblenden, wenn aktiviert bearbeitet und deaktiviert:

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

Machen Sie eine Steckdose mit starken (nicht schwach als Standard) der b Schaltfläche vom Storyboard zum View-Controller. Der Zweck besteht nicht darin, die Referenz zu verlieren, wenn Sie den linken/rechten Balkenknopf auf Null stellen.

Verwandte Themen