2013-03-27 3 views
1

im пытается установить пользовательскую кнопку возврата для навигационной панели моего приложения. прямо сейчас im используя этот код для этого:UINavigationBar пользовательская кнопка возврата с формой

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"backbutton.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

Это в конечном итоге искажает мое изображение и делает его растянутым. он также добавляет текст поверх него. Как я могу сделать это так, чтобы он просто отображал это изображение?

Вот изображение: http://thai-flashcards.info/images/arrow-blue-rounded-left.jpg?1303347394

+0

См http://stackoverflow.com/a/15644778/412916 – Jano

ответ

2

Что вы ищете является растяжимым изображение.

это должно заставить вас разобраться:

http://idevrecipes.com/2010/12/08/stretchable-images-and-buttons/

Edit: глядя на ваши изображения я не думаю, что будет работать.

Вам нужно будет создать пользовательский UIButton и установить свою кнопку возврата на эту настраиваемую кнопку и обработать всплывающее окно ViewController.

Вы бы сделали/установили такую ​​кнопку.

UIImage *buttonImage = [UIImage imageNamed:@"mybuttonimage.png"]; 
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[doneButton addTarget:self action:@selector(goBack)forControlEvents:UIControlEventTouchUpInside]; 

[doneButton setImage:buttonImage forState:UIControlStateNormal]; 

UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithCustomView:doneButton]; 

    self.navigationItem.leftBarButtonItem = backButton; 

И вам нужно добавить метод GoBack

-(void)goBack { // Go Back 

    [self.navigationController popToViewController: 
    [self.navigationController.viewControllers objectAtIndex:3] animated:YES]; 
} 
+0

После того, как вы создадите пользовательский barButton, установка 'backBarButtonItem'' UINavigationItem' в 'UINavigationBar.backItem' обрабатывает это для y ОУ? –

+1

На самом деле нет! Я не знаю, почему Apple не поддерживает его, но: http://stackoverflow.com/questions/4964276/self-navigationitem-backbarbuttonitem-not-working-why-is-the-previous-menu-st –

+0

О, да , ОК. Спасибо за разъяснения! –

2

Добавить в AppDelegate под didFinishLaunchingWithOptions

UIImage *backBtnIcon = [UIImage imageNamed:@"back.png"]; 
UIImage *backButtonImage = [backBtnIcon resizableImageWithCapInsets:UIEdgeInsetsMake(0, backBtnIcon.size.width - 1, 0, 0)]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault ]; 
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -30) forBarMetrics:UIBarMetricsDefault]; 
Смежные вопросы