Как сделать leftBarButtonItem похожим на backBarButtonItem? - PullRequest
3 голосов
/ 13 сентября 2011

Решения по умолчанию не подходят:

  1. чтобы изменить предыдущий заголовок ViewController - мне нужно сделать свою собственную функцию, управляющую нажатием кнопки
  2. для создания leftBarButtonItem и скрытия backBarButtonItem - leftBarButtonItem не похоже на задний элемент по умолчанию backBarButtonItem.

Ответы [ 4 ]

13 голосов
/ 13 сентября 2011

Вот пример для создания пользовательского leftBarButtonItem:

UIImage *buttonImage = [UIImage imageNamed:@"backbutton.png"];
UIButton *aButton = [UIbutton buttonWithType:UIButtonTypeCustom];
[aButton setImage:buttonImage forState:UIControlStateNormal];
aButton.frame = CGRectMake(0.0,0.0,buttonImage.size.width,buttonImage.size.height);
[aButton addTarget:self action:@selector(aSelector) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:aButton];
self.navigationItem.leftButtonItem = backButton;

Надеюсь, это поможет ...

Редактировать:

Попробуйте это...

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"yourimage.jpg"] style:UIBarButtonItemStyleBordered target:self action:@selector(aSelector)];
self.navigationItem.leftBarButtonItem = backButton;

Я не помню, какой тип кнопки является кнопкой, попробуйте изменить стиль по умолчанию на другой.Удачи!

0 голосов
/ 14 сентября 2011

Вот как можно добавить кнопку типа «назад»:

UINavigationItem* backNavigationItem = [[UINavigationItem alloc] initWithTitle:@"Back"];
[_navigationBar pushNavigationItem:backNavigationItem animated:NO];
[backNavigationItem release];

Вы можете добавить больше элементов (таких как заголовок, правая кнопка) следующим образом:

UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Title"];
navigationItem.rightBarButtonItem = // Some UIBarButtonItem
[_navigationBar pushNavigationItem:navigationItem animated:NO];
[navigationItem release];
0 голосов
/ 13 сентября 2011

Вы можете назначить свои пользовательские виды в качестве кнопок панели для вашего контроллера навигации, например:

UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:yourCustomizedControl];
[yourCustomizedControl release];

self.navigationItem.leftBarButtonItem = customItem;
[customItem release];

Проверьте эту документацию Apple для более подробного объяснения, если хотите.

0 голосов
/ 13 сентября 2011

Просто создайте пользовательский barbuttonitem и настройте его с изображением, похожим на элемент кнопки «Назад». Вы можете получить его текст из контроллеров представления в стеке навигации.

Затем обработайте метчики для реализации желаемого эффекта

...