Мне нужно сделать кнопку повторно, после того, как я установил ее в ноль, но я не могу понять, как это понять.iOS - напротив nil для rightBarButtonItem
Я поставил его nil
с помощью:
self.navigationItem.rightBarButtonItem =nil;
Мне нужно сделать кнопку повторно, после того, как я установил ее в ноль, но я не могу понять, как это понять.iOS - напротив nil для rightBarButtonItem
Я поставил его nil
с помощью:
self.navigationItem.rightBarButtonItem =nil;
При установке кнопки к нулю вы уничтожите (Освобождает) его. Просто заново создайте кнопку. Или, если по какой-то причине это сложно создать, создайте другое свойство, которое удерживает кнопку, а затем используйте ее для восстановления rightBarButtonItem
.
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
[self.navigationItem setRightBarButtonItem:doneButton animated:YES]
Это не отвечает на вопрос. Вопрос заключается в том, как восстановить исходную кнопку, которая была на месте, перед установкой на «nil». – rmaddy
Правда. Прочтите q слишком быстро: P –
Скрыть кнопку, установив ссылку на ноль, однако, если вы хотите, чтобы восстановить его позже, вам нужно повесить на его копию, так что вы можете передать его.
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;
Необходимо установить кнопку в нуль? Другой подход - установить фоновый альфа кнопки на 0 или отключить его с помощью setEnabled: NO. Если это требование, у вас есть два варианта:
магазин кнопка, как свойство и назначить кнопку на rightBarButtonItem в navigationItem. Убедитесь, что вы делаете все манипуляции с кнопками в свойстве.
Создайте способ создания экземпляра UINavigationItem с помощью кнопки и назначьте эту кнопку вправоBarButtonItem. Кстати, если вы хотите иметь точно такой же экземпляр, который у вас был в задании nil, вы должны использовать первый вариант.
Надеюсь, это поможет!
Так я бы пошел – powerj1984
Спасибо, его не нужно устанавливать его в ноль. То, что я собирался, когда-то было завершено определенное действие, такое как регистрация, тогда кнопка исчезнет. Я попробовал добавить обычную кнопку от IB до конца табличного вида, но он не позволит подключить к ней розетку, это позволит мне подключить розетку к представлению таблицы (это проблема, которую я нашел только на ipad, как и на одном и том же приложении на iphone, и это не проблема. Я принял ваш подход и setEnabled к No после регистрации. –
приятно, если это решит вашу проблему, пожалуйста, отметьте мой ответ! Имейте отличный день – lucaslt89
Спасибо, есть ли другой способ скрыть кнопку? Я попробовал добавить кнопку в конце представления таблицы, но это не позволит мне подключить выход к кнопке только для просмотра/таблицы, это только проблема на iPad, а не iPhone, который мне кажется странным. –
В viewDidLoad вы можете сохранить rightBarButtonItem (созданный в XIB) в другое свойство. – Wain