2014-01-07 3 views
5

Я хочу добавить стрелку назад к leftBarButtonItem, чтобы она выглядела визуально, как если бы она была обычной кнопкой назад, хотя ее функциональность немного отличается.Добавить обратную стрелку влевоBarButtonItem?

Есть ли способ сделать это?

+1

Используйте 'Custom UIButton' для этого с обратным изображением. –

+0

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

ответ

10

Вы можете использовать пользовательскую кнопку и скрыть кнопку «Назад», если используете навигационный контроллер.

Чтобы скрыть кнопку назад используйте:

self.navigationItem.hidesBackButton = YES; 

И для НАЗН.КНОПКА:

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; 

Это будет работать для вас. Happy Coding

1

Если вы используете UINavigationController, а затем нажмите новый диспетчер представлений, он автоматически отобразит кнопку возврата. Если вы не используете UINavigationController чем

Использование пользовательских UIButton для этого с задним изображением

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; 

Вы можете изменить значение для кадра и imageEdgeInsets согласно вашим требованиям.

Refer this SO Ответ.

Смежные вопросы