2013-03-26 4 views
3

enter image description hereИскаженной панели навигации пользовательской кнопки назад

У меня есть обычай назад кнопка и кнопка не отображаются, как предполагался, он растягивается, и даже если текст кнопки обратно пустой, он по-прежнему отображать «назад " текст.

Заранее спасибо.

ответ

4

Я обычно использую эту технику, чтобы сделать его работу:

  1. избавиться название по умолчанию:

    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0) forBarMetrics:UIBarMetricsDefault]; 
    
  2. Используйте изменяемого изображения:

    UIImage *backButton = [UIImage imageNamed:@"back.png"];   
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:[backButton resizableImageWithCapInsets:UIEdgeInsetsMake(0, backButton.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
    
+0

и это действительно работало, спасибо тонну :) и @Jano действительно ценю усилие! – prabhu

2

Try что-то вроде

UIButton *back = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *image = ... your image 
[back setBackgroundImage:image forState:UIControlStateNormal]; 
[back addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside]; 
back.frame = CGRectMake(0, 0, image.size.width, image.size.height); 
UIBarButtonItem *backbi = [[UIBarButtonItem alloc] initWithCustomView:back]; 
self.navigationItem.leftBarButtonItem = backbi; 

или размещать свой код.

+0

На самом деле я я использую что-то вроде этого UIImage * backButton = [UIImage imageNamed: @ "back.png"]; [[UIBarButtonItem внешний вид] setBackButtonBackgroundImage: backButton forState: UIControlStateNormal barMetrics: UIBarMetricsDefault]; – prabhu

+0

извините, если я являюсь noob, но self.navigationItem.leftBarButtonItem = backbi; говорит свойство 'navigationItem' не найдено на объекте типа AppDelegate – prabhu

+1

self.navigationItem будет работать только при использовании с контроллера вида. – Jano

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