Как указать действие для пользовательской кнопки «Назад» в автономной панели UINavigationBar? - PullRequest
0 голосов
/ 07 июля 2011

У меня есть пользовательская панель UINavigationBar на экране, т. Е. Нет контроллера навигации, как определено ниже, который содержит кнопку «Назад» с заголовком «Media» и действие «mediaViewComplete».Однако метод mediaViewComplete не вызывается при нажатии кнопки.Как указать действие для кнопки «Назад»?

self.navigationBar=[[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44)];
navigationBar.barStyle=UIBarStyleBlackTranslucent;

UINavigationItem *navigationItem=[[UINavigationItem alloc]init];
UIBarButtonItem *backButton=[[UIBarButtonItem alloc]initWithTitle:@"Media" style:UIBarButtonItemStylePlain target:self action:@selector(mediaViewComplete)];
navigationItem.backBarButtonItem=backButton;
[self.navigationBar pushNavigationItem:navigationItem animated:NO];

navigationItem=[[UINavigationItem alloc]init];
UIBarButtonItem *editButton=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editCategorization)];
navigationItem.rightBarButtonItem=editButton;
[self.navigationBar pushNavigationItem:navigationItem animated:NO];

[self.view addSubview:navigationBar];

[editButton release];
[backButton release];
[navigationItem release];

1 Ответ

1 голос
/ 07 июля 2011

Проблема в том, что вы используете:

navigationItem.backBarButtonItem = backbutton;

BackBarButtonItem имеет свое собственное событие, которое не переопределяется вашей опцией action :.На самом деле, руководящие принципы Apple гласят, что вы должны использовать «ноль» в качестве действия для backBarButtonItem.BackBarButtonItem не принадлежит текущему контроллеру представления.

Если вы не беспокоитесь о форме стрелки кнопки, вам следует использовать leftBarButtonItem.Если вы хотите создать полностью настраиваемые кнопки «Назад» с формой стрелки, вам нужно будет поработать над магией.К счастью, большая часть работы была проделана для вас:

http://idevrecipes.com/2011/01/12/how-do-iphone-apps-instagramreederdailybooth-implement-custom-navigationbar-with-variable-width-back-buttons/

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

...