12

Ich möchte der Navigationsleiste ein Element für die linke Standardschaltfläche hinzufügen. Es sollte nur angezeigt werden, wenn der UINavigationController keine Rücktaste zur Verfügung stellt.Fügen Sie UINavigationController ein Element der linken Leiste hinzu, wenn keine Schaltfläche "Zurück" vorhanden ist.

Was ist der beste Ansatz?

+0

Ihre Frage ist der beste Ansatz. Wenn es keine Zurück-Schaltfläche gibt, fügen Sie Ihre linke Schaltfläche hinzu. – rmaddy

Antwort

23
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
    if(navigationController.viewControllers.count != 1) { // not the root controller - show back button instead 
     return; 
    } 
    UIBarButtonItem *menuItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize 
                       target:self 
                       action:@selector(menuItemSelected:)]; 
    [viewController.navigationItem setLeftBarButtonItem:menuItem]; 
} 
+0

Dies ist Delegate von UINavigationController? –

1

Swift Code leftBarButtonItem hinzufügen ...

let leftMenuItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "leftMenuItemSelected:"); 
    self.navigationItem.setLeftBarButtonItem(leftMenuItem, animated: false); 
1

Swift 3-Version:

let done = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(YourController.done)) 
navigationItem.setLeftBarButtonItem(done, animated: false) 
Verwandte Themen