Удалить элемент BarButtonItem из NavigationItem - PullRequest
2 голосов
/ 24 декабря 2010

Я создаю приложение, в котором я использую навигационный контроллер.Я сделал с добавлением и удалением UIBarButtonItem из панели навигации.У меня есть кнопка «Назад» с левой стороны и дополнительная кнопка с правой стороны, названная (БОЛЬШЕ).

Теперь мое требование - когда я нажимаю на БОЛЬШЕ, мне нужно добавить кнопку ЗАКРЫТЬ на левой стороне панели навигациии кнопка Назад должна быть скрыта.Я тоже с этим покончил.

Проблема при удалении кнопки ЗАКРЫТЬ, которую я использую, например:

self.navigationItem.leftBarButtonItem = nil;

Она также удаляет мою кнопку возврата.Мне нужно удерживать кнопку «назад» и только хочу удалить кнопку.

Я не знаю, прав ли я, и мне нужно написать код для отображения кнопки «Назад» назад.или есть ли способ, которым я могу удалить только кнопку ЗАКРЫТЬ по нажатию кнопки БОЛЬШЕ или ЗАКРЫТЬ само.

Спасибо

1 Ответ

4 голосов
/ 24 декабря 2010

Если вы нажмете кнопку «БОЛЬШЕ», то кнопка «НАЗАД» должна быть скрыта, а ДОЛЖНО быть добавлено в левой части NavBar, чтобы вы могли сделать это следующим образом:

-(void) moreButtonClicked{

[self.navigationItem setLeftBarButtonItem:nil animated:NO];
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"CLOSE" style:UIBarButtonItemStyleBordered target:self action:@selector (closeButtonClicked:)];
self.navigationItem.leftBarButtonItem = closeButton;
[closeButton release];

}

, если вы хотите удалить кнопку ЗАКРЫТЬ и установить кнопку НАЗАД на прежнее место, попробуйте следующее:

[self.navigationItem setLeftBarButtonItem:nil animated:NO];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"BACK" style:UIBarButtonItemStyleBordered target:self action:@selector (backButtonClicked:)];
self.navigationItem.leftBarButtonItem = backButton;
[backButton release];
...