#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 = @[];
Надеюсь, это кому-то поможет.