Подтвердить что ты не робот

Как скрыть элемент кнопки панели для определенных пользователей

У меня есть элемент кнопки панели настроек (устанавливается как элемент кнопки левой панели). Я просто хочу отобразить его, если пользователь вошел в систему.

Я думал, что могу использовать следующее для анонимных пользователей

navigationItem.leftBarButtonItem = nil

Но как я могу показать его, как только они вошли?

4b9b3361

Ответ 1

Вы можете сохранить копию свойства leftBarButtonItem в свойстве strong и установить его обратно после входа в систему.

var leftBarButtonItem : UIBarButtonItem!

Внутри viewDidLoad

self.leftBarButtonItem = UIBarButtonItem(title: "test", style:         UIBarButtonItemStyle.Plain, target: nil, action: nil)

В логике

if loggedIn
{
    self.navigationItem.leftBarButtonItem = self.leftBarButtonItem
}
else
{
    self.navigationItem.leftBarButtonItem = nil
}

Ответ 2

Лучший способ - это просто настроить ваш батон с изображением. Установите barbuttom.image = nil на Скрыть, чтобы снова назначить отображаемое изображение. И не забудьте сделать barbutton isEnabled как false.

Ответ 3

У меня больше, что 2 элемента меню и remove/add menuitem являются накладными расходами. Этот фрагмент кода работал у меня.

func showMenuItem(){

    menuItemQuit.customView?.isHidden = false
    menuItemQuit.plainView.isHidden = false
}

func hideMenuItem(){

    menuItemQuit.customView?.isHidden = true
    menuItemQuit.plainView.isHidden = true
}

Ответ 4

если вы хотите скрыть/показать UIBarButtonItem: для Swift 3

Используется под простым кодом:

Декларация:

var doneButton = UIBarButtonItem()

В ViewDidLoad() или ViewWillAppear() или где вы хотите скрыть его: [hide bar button]

self.navigationItem.rightBarButtonItem = nil

где вы хотите показать кнопку панели: [использовать в любом месте вашего кода]

self.navigationItem.rightBarButtonItem = self.doneButton
        doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(YourViewController.dismissPicker))