Как я могу скрыть UIBarButtonItem? - PullRequest
9 голосов
/ 21 октября 2011

Я создал простой пользовательский интерфейс в IB, он состоит из UINavigationBar и UIBarButtonItem, которые я перетаскивал с правой стороны.

Я пытаюсь настроить эту кнопку наскрытый определенное время, но у меня есть некоторые проблемы.

До сих пор я пытался использовать:

self.NavigationItem.rightBarButton = nil;

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

Пожалуйста, кто-нибудь может мне помочь?

Ответы [ 6 ]

25 голосов
/ 21 октября 2011

UINavigationItem не имеет свойства rightBarButton.Попробуйте rightBarButtonItem вместо (или [self.navigationItem setRightBarButtonItem:nil animated:NO];):

self.navigationController.navigationItem.rightBarButtonItem = nil;
// Or
self.navigationItem.rightBarButtonItem = nil;
// Or
[self.navigationItem setRightBarButtonItem:nil animated:NO];
1 голос
/ 21 октября 2011

Просто сбросьте кнопки

   -(void)setItems:(NSArray *)items animated:(BOOL)animated 

Подробнее здесь: http://developer.apple.com/iphone/library/documentation/uikit/reference/UIToolbar_Class/Reference/Reference.html#//apple_ref/occ/instm/UIToolbar/setItems%3aanimated%3a

Вы можете получить текущие элементы, используя свойство items, а затем просто удалить тот, который вам не нуженпоказать и передать в новом NSArray.

0 голосов
/ 18 октября 2014

Самое простое решение: просто измените идентификатор BarButtonItem на custom.

0 голосов
/ 30 июля 2014

На самом деле, вы можете просто создать ссылку IBOutlet на нужный UIBarButtonItem и, когда необходимо, сделать следующее:

[self.yourOutletRerence setImage: nil];
0 голосов
/ 04 апреля 2014

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

[self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]}
                                                      forState:UIControlStateDisabled];

Затем, когда вы захотите элемент панели кнопокскрытый, вы можете просто сделать:

self.navigationItem.rightBarButton.enabled = NO;

Хромо, нет скрытого свойства, но это дает тот же результат.

0 голосов
/ 19 марта 2014

Вы также можете добавить UIButton как пользовательский вид UIBarButtonItem. Затем установите скрытое свойство в customView (UIButton)

...