Вы можете сделать одно из двух следующих вариантов:
Держите ссылку вашего UIBarButtonItem
и каждый раз, когда вы исчезнете вы сохраните его тогда, когда вы хотите, чтобы показать его снова установить старое значение.
Воспроизвести цвет UIBarButtonItem
и включить/отключить свойство, позволяющее взаимодействовать с ним.
Первый выбор всегда держать ссылку на глобальном уровне в UIBarButtonItem
и второй необходимости знать точный цвет оригинального UIBarButtonItem
дать в исходное состояние:
Первый вариант:
private var isHidden: Bool!
private var righBarButtonItem: UIBarButtonItem!
@IBAction func hideButton(sender: AnyObject) {
if self.isHidden == true {
self.isHidden = false
self.navigationItem.rightBarButtonItem = righBarButtonItem
}
else {
self.isHidden = true
righBarButtonItem = self.navigationItem.rightBarButtonItem
self.navigationItem.setRightBarButtonItem(nil, animated: true)
}
}
Второй вариант:
@IBAction func hideButton(sender: AnyObject) {
if self.isHidden == true {
self.isHidden = false
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor()
self.navigationItem.rightBarButtonItem?.enabled = false
}
else {
self.isHidden = true
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.blueColor()
self.navigationItem.rightBarButtonItem?.enabled = true
}
}
В приведенных выше примерах, которые я установил переменное состояние UIBarButtonItem
для целей знать значение и и @IBOutlet
, чтобы скрыть/показать UIBarButtonItem
. Переменной isHidden
необходимо установить ее начальное значение в viewDidLoad
.
Я надеюсь, что это поможет вам.
Я боюсь, что вам придется его снова закодировать после того, как вы установите его 'nil', его больше не существует. –
Не существует способа, по которому я могу установить значение boolean или alpha, чтобы скрыть/показать его? – syedfa