смените подставку с пользовательским изображением и текстом

Я хочу изменить внешний вид подставки для своей подкладки в моей навигационной панели. Для этого у меня есть этот кусок кода.

UIImage *backButtonImage = [UIImage imageNamed:@"backbutton.png"]; UIButton *backbutton = [UIButton buttonWithType:UIButtonTypeCustom]; backbutton.backgroundColor = [UIColor colorWithPatternImage:backButtonImage]; backbutton.titleLabel.text = @"back"; backbutton.titleLabel.textColor= [UIColor colorWithRed:50/255.0 green:158/255.0 blue:218/255.0 alpha:1.0]; backbutton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height); UIBarButtonItem * back = [[UIBarButtonItem alloc] initWithCustomView:backbutton]; [backbutton addTarget:self action:@selector(back_Clicked) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = back; 

Но все-таки я получаю стандартную кнопку возврата. Любая помощь ?

используя следующий код для вашего требования.

 - (void)viewDidLoad { ///write your code UIImage *backButtonImage = [UIImage imageNamed:@"backbutton.png"]; UIButton *backbutton = [UIButton buttonWithType:UIButtonTypeCustom]; //[backbutton setImage:backButtonImage forState:UIControlStateNormal];//this line for set only image on button [backbutton setBackgroundImage:backButtonImage forState:UIControlStateNormal]; [backbutton setTitle:@"Back" forState:UIControlStateNormal]; backbutton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height); UIBarButtonItem * back = [[UIBarButtonItem alloc] initWithCustomView:backbutton]; [backbutton addTarget:self action:@selector(back_Clicked) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = back; } 

когда кнопка «назад» нажала на вызов метода ниже, и вы перейдете к предыдущему диспетчеру просмотра

 -(void)back_Clicked{ [self.navigationController popViewControllerAnimated:YES]; } 

Поместите свой код, чтобы настроить кнопку «Назад», прежде чем нажимать этот viewController на стек. И установите BackBarButtonItem, а не leftBarButtonItem.

 UIImage *image = [UIImage imageNamed:@"backbutton.png"]; UIButton *backbutton = [UIButton buttonWithType:UIButtonTypeCustom]; backbutton.bounds = CGRectMake( 0, 0, image.size.width, image.size.height ); [backbutton setImage:image forState:UIControlStateNormal]; backbutton.titleLabel.textColor = [UIColor blueColor]; UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithCustomView:backbutton]; [[self navigationItem] setBackBarButtonItem: back]; [self.navigationController pushViewController:yourViewControllerObject animated:YES]; 

использование

  self.navigationItem.leftBarButtonItem = back; 

Вместо

  self.navigationController.navigationItem.leftBarButtonItem = back; 
 [self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:[self buttonWithImage:@"backButton" heighlightImageName:@"backButton" buttonFrame:CGRectMake(2, 1, 30, 30) selectorName:@selector(buttonBackClicked:) target:self]]]; - (UIButton*)buttonWithImage:(NSString*)normalImageName heighlightImageName:(NSString*)heighlightImageName buttonFrame:(CGRect)buttonFrame selectorName:(SEL)selectorName target:(id)target { UIButton *tempButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [tempButton setFrame:buttonFrame]; [tempButton addTarget:target action:selectorName forControlEvents:UIControlEventTouchUpInside]; [tempButton setImage:[self getImageFromResource:normalImageName] forState:UIControlStateNormal]; [tempButton setImage:[self getImageFromResource:heighlightImageName] forState:UIControlStateHighlighted]; return tempButton; } - (UIImage*)getImageFromResource:(NSString*)imageName { return [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]]; } 
  IButton *favButton = [[UIButton alloc] init]; [favButton setImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal]; [favButton addTarget:self action:@selector(favouriteButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView:favButton]; self.navigationItem.rightBarButtonItem = button; [button release]; [favButton release]; 
  • Как нажать viewController перед тем, как отклонить контроллер модального просмотра с помощью раскадровки?
  • tableView didSelectRowAtIndexPath не работает должным образом на iOS 7. Почему?
  • Делегат приложения должен реализовать свойство window, если он хочет использовать основной файл раскадровки
  • Рекомендации по обработке изменений в UINavigationItem контроллеров дочерних представлений в контроллере контейнера?
  • Как создать UINavigationItem.TitleView на основе файла nib?
  • iOS Development: Почему так часто сохраняются учетные записи для моего контроллера представления?
  • Представление UINavigationController в пользовательском модальном
  • как проверить, находится ли контроллер уже в стеке диспетчера контроля навигации?
  • Как добавить UIToolbar в NavigationController на раскадровке?
  • Добавление заголовка в левую часть панели навигации
  • Swift - программно перейдите к другому контроллеру / сцене
  • Давайте будем гением компьютера.