2014-01-07 13 views
5

Ich möchte einen Rückwärtspfeil zu einem leftBarButtonItem hinzufügen, damit es optisch aussieht, als ob es eine normale Zurück-Schaltfläche wäre, obwohl die Funktionalität etwas anders ist.Hinzufügen eines Zurückpfeils zu leftBarButtonItem?

Gibt es eine Möglichkeit, dies zu tun?

+1

Verwenden Sie "Custom UIButton" für das Bild mit der Rückseite. –

+0

http://stackoverflow.com/questions/18824186/trying-to-handle-back-navigation-button-action-in-ios/18824282#18824282 –

Antwort

10

Sie können die benutzerdefinierte Schaltfläche verwenden und die Zurück-Schaltfläche ausblenden, wenn Sie den Navigationscontroller verwenden.

self.navigationItem.hidesBackButton = YES; 

Und für Custom Button::

Um dieses Zurück-Taste Verwendung verstecken

UIButton * customButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[customButton setBackgroundColor:[UIColor colorWithRed:197.0/255.0 green:190.0/255.0 blue:157.0/255.0 alpha:1.0]]; 
[customButton setTitle:@"Do Something" forState:UIControlStateNormal]; 
customButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:11.0f]; 
[customButton.layer setCornerRadius:3.0f]; 
[customButton.layer setMasksToBounds:YES]; 
[customButton.layer setBorderWidth:1.0f]; 
[customButton.layer setBorderColor: [[UIColor grayColor] CGColor]]; 
customButton.frame=CGRectMake(0.0, 100.0, 50.0, 25.0); 
[customButton addTarget:self action:@selector(customMethod:) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem * customItem = [[UIBarButtonItem alloc] initWithCustomView:customButton]; 
customItem.tintColor=[UIColor blackColor]; 
self.navigationItem.leftBarButtonItem = customItem; 

Dies wird für Sie arbeiten. Happy Coding

1

Wenn Sie UINavigationController verwenden und dann den neuen Viewcontroller drücken, wird automatisch die Schaltfläche Zurück angezeigt. Wenn Sie UINavigationController nicht verwenden als

Use Custom UIButton für das mit Rücken Bild

UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
backButton.frame = CGRectMake(0, 0, 48, 37); 
[backButton addTarget:self action:@selector(backButtonTapped) forControlEvents:UIControlEventTouchUpInside]; 
backButton.showsTouchWhenHighlighted = YES; 

UIImage *backButtonImage = [UIImage imageNamed:@"back-button.png"]; 
[backButton setImage:backButtonImage forState:UIControlStateNormal]; 

backButton.imageEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10); 

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
self.navigationItem.leftBarButtonItem = backBarButtonItem; 

Sie den Wert für den Rahmen verändern kann und die imageEdgeInsets nach Ihren Wünschen.

Siehe this SO Antwort.