ios 隠す 特定のユーザーに対してバーボタン項目を非表示にする方法




uibarbuttonitem 透明 (4)

設定バーボタン項目(左バーボタン項目として設定)があります。 ユーザーがログインしている場合にのみ表示します。

私は私が匿名ユーザーのために以下を使うことができると思いました

navigationItem.leftBarButtonItem = nil

しかし、それなら彼らがログインしたらすぐにそれをどのように見せるでしょうか?


leftBarButtonItemのコピーをstrongプロパティに格納し、ユーザーがログインした後にそれを更新することができます。

var leftBarButtonItem : UIBarButtonItem!

内側viewDidLoad

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

論理的には:

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

最善の方法は、イメージを使用してバーのカスタムボタンをカスタマイズすることです。 barbuttom.image = nilをHideに設定して、表示する画像を割り当てます。 そして、ボタンisEnabledをfalseにすることを忘れないでください。


私は2つ以上のメニューアイテムを持っていて、削除/追加メニューアイテムはオーバーヘッドです。 このコードスニペットは私にとって役に立ちました。

func showMenuItem(){

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

func hideMenuItem(){

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

UIBarButtonItemを非表示/表示したい場合:Swift 3用

単純なコードの下で使用されます。

宣言:

var doneButton = UIBarButtonItem()

ViewDidLoad()またはViewWillAppear()、またはそれを非表示にしたい場所:[バーを隠すボタン]

self.navigationItem.rightBarButtonItem = nil

あなたがバーボタンを表示したい場所:[あなたのコードのどこにでも使う]

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






uibarbuttonitem