Скрыть правильныйBarButtonItem контроллера навигации - PullRequest
12 голосов
/ 15 июня 2010

Кто-нибудь знает, как скрыть rightBarButtonItem из UINavigationController?В моем приложении у меня есть кнопка редактирования как rightBarButtonItem из UINavigationController.Я хочу это скрыть?UIBarButton` при выполнении некоторых операций.

Ответы [ 3 ]

16 голосов
/ 12 ноября 2011

Чтобы скрыть правую кнопку: self.navigationItem.rightBarButtonItem = nil;

Теперь, чтобы показать это:

  1. Если вы установили правильную кнопку в вашем контроллере вида, назначив ее для self.editButtonItem, то просто назначьте ее снова, чтобы показать:

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

  2. Если вы установили правильную кнопку в вашем контроллере представления, выделив и инициировав UIBarButtonItem, то просто сохраните ссылку на UIBarButtonItem в вашем контроллере представления и назначьте ее снова, когда вам нужно будет показать ее.

13 голосов
/ 24 марта 2014

Если вам нужно скрыть / показать кнопку на основании какого-либо условия, попробуйте следующее:

if (condition) { 
    self.navigationItem.rightBarButtonItem.title = @"";
    self.navigationItem.rightBarButtonItem.enabled = NO;
} else {
    self.navigationItem.rightBarButtonItem.title = @"my button title";
    self.navigationItem.rightBarButtonItem.enabled = YES;
}

Таким образом, вам не нужно сохранять ссылку на кнопку в свойстве или беспокоиться о проводке.действие на новую кнопку.

13 голосов
/ 15 июня 2010

Попробуйте

self.navigationItem.rightBarButtonItem = nil;

Когда вы захотите вернуть его обратно, вам придется создать кнопку, т. Е.

UIBarButtonItem *rightBarButton = 
 [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch
                                               target:self
                                               action:@selector(searchBar:)];
self.navigationItem.rightBarButtonItem = rightBarButton;
[rightBarButton release];
...