2013-06-01 4 views

ответ

3

При установке кнопки к нулю вы уничтожите (Освобождает) его. Просто заново создайте кнопку. Или, если по какой-то причине это сложно создать, создайте другое свойство, которое удерживает кнопку, а затем используйте ее для восстановления rightBarButtonItem.

+0

Спасибо, есть ли другой способ скрыть кнопку? Я попробовал добавить кнопку в конце представления таблицы, но это не позволит мне подключить выход к кнопке только для просмотра/таблицы, это только проблема на iPad, а не iPhone, который мне кажется странным. –

+0

В viewDidLoad вы можете сохранить rightBarButtonItem (созданный в XIB) в другое свойство. – Wain

0
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)]; 
[self.navigationItem setRightBarButtonItem:doneButton animated:YES] 
+0

Это не отвечает на вопрос. Вопрос заключается в том, как восстановить исходную кнопку, которая была на месте, перед установкой на «nil». – rmaddy

+0

Правда. Прочтите q слишком быстро: P –

0

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

UIBarButtonItem *oldButton = self.navigationItem.rightBarButtonItem; 
[oldButton retain]; 
self.navigationItem.rightBarButtonItem = nil; 

//... later 
self.navigationItem.rightBarButtonItem = oldButton; 
[oldButton release]; 

Или создайте объект barbuttonitem и просто передайте его, когда вам это нужно.

@property (nonatomic, retain) UIBarButtonItem *rightNavButton; 
self.navigationItem.rightBarButtonItem = self.rightNavButton; 
2

Необходимо установить кнопку в нуль? Другой подход - установить фоновый альфа кнопки на 0 или отключить его с помощью setEnabled: NO. Если это требование, у вас есть два варианта:

  • магазин кнопка, как свойство и назначить кнопку на rightBarButtonItem в navigationItem. Убедитесь, что вы делаете все манипуляции с кнопками в свойстве.

  • Создайте способ создания экземпляра UINavigationItem с помощью кнопки и назначьте эту кнопку вправоBarButtonItem. Кстати, если вы хотите иметь точно такой же экземпляр, который у вас был в задании nil, вы должны использовать первый вариант.

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

+0

Так я бы пошел – powerj1984

+0

Спасибо, его не нужно устанавливать его в ноль. То, что я собирался, когда-то было завершено определенное действие, такое как регистрация, тогда кнопка исчезнет. Я попробовал добавить обычную кнопку от IB до конца табличного вида, но он не позволит подключить к ней розетку, это позволит мне подключить розетку к представлению таблицы (это проблема, которую я нашел только на ipad, как и на одном и том же приложении на iphone, и это не проблема. Я принял ваш подход и setEnabled к No после регистрации. –

+0

приятно, если это решит вашу проблему, пожалуйста, отметьте мой ответ! Имейте отличный день – lucaslt89

Смежные вопросы