Подтвердить что ты не робот

Скрыть правый элементBarButtonItem навигационного контроллера

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

4b9b3361

Ответ 1

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

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

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

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

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

Ответ 2

Попробуйте

self.navigationItem.rightBarButtonItem = nil;

Если вы хотите, чтобы он вернулся, хотя вам нужно будет запустить кнопку i.e.

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

Ответ 3

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

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

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