Временно скрыть кнопки панели UINavigationBar

#iphone #objective-c #ios #uinavigationbar #uibarbuttonitem

#iPhone #objective-c #iOS #панель uinavigationbar #uibarbuttonitem

Вопрос:

Есть ли простой способ временно скрыть кнопки на панели UINavigationBar?

Комментарии:

1. Вы пробовали: Nameofbarbutton.alpha = 0.0; ?

2. Хм, не удалось. Попробую.

3. Небольшой совет: если вы хотите анимировать кнопку и загружаете uibarbuttonitem в метод -viewDidLoad со ссылкой (т.е. uibarbuttonitem * name = …), то вам нужно включить ее в .h, но не присваивать ей свойства и не синтезировать ее. Вам просто нужна ссылка, чтобы кнопку панели можно было анимировать изнутри .m.

4. У UIBarButtonItem нет свойства alpha (во всяком случае, в соответствии с моим XCode)

5. Ах! Виноват! Uibarbuttonitems не имеют альфа-свойств! Создайте пустое изображение и попробуйте следующее: theButton.enabled = НЕТ; theButton.image = [UIImage imageNamed: @»Blank.png»];

Ответ №1:

Существует довольно много подходов, которые можно предпринять, чтобы скрыть UIBarButtonItem . Для установки значения nil требуется повторное создание экземпляра, что не является приятным способом, поэтому я решил отключить его и установить вместо него пустое изображение:

 self.theButton.enabled = NO;
self.theButton.image = [UIImage imageNamed: @"Blank.png"];
  

Ответ №2:

  self.navigationItem.rightBarButtonItem =nil;
  

Комментарии:

1. Я не голосовал против этого, поскольку это не является неправильным. Однако я не поддержал это, поскольку оно не завершено. В нынешнем виде это навсегда удаляет элемент из панели. Если бы вы включили комментарии для повторного запуска позже, это получило бы положительный результат.

Ответ №3:

 button1.width = 0.01;
  

Кнопка, которая должна исчезнуть…

Ответ №4:

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

 -(void)showBackButton:(BOOL)isShown{
if (isShown) {
    UIBarButtonItem* button = [[UIBarButtonItem alloc] initWithTitle: @"Back"
                                                                    style: UIBarButtonItemStyleBordered
                                                                   target: self
                                                                   action: @selector(onBack)];
    self.myNavigationItem.leftBarButtonItem = button;
    [closeButton release];      
}
else {
    self.myNavigationItem.leftBarButtonItem = nil;
}
  

}

Ответ №5:

Если вы хотите скрыть все кнопки панели справа или слева, используйте следующий код

 self.navigationItem.leftBarButtonItems = @[];
self.navigationItem.rightBarButtonItems = @[];
  

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