UIBarButtonItem
を表示/非表示にしようとしています。 barButton
の右側にstoryboard
を追加しました。次に、viewDidLoad
で、rightBarButtonItem
をnil
にしました。後で、button
に追加したstoryboard
に設定しました。ここに私のコードがあります:
// Right barButtonItem added in storybord:
@IBOutlet weak var deleteBarButton: UIBarButtonItem!
// viewDidLoad
self.navigationItem.rightBarButtonItem = nil
// Later on...
self.navigationItem.rightBarButtonItem = self.deleteBarButton
self.deleteBarButton
をrightBarButtonItem
に設定しても、何も起こりません。表示されません。私は何を間違えていますか?barButtonItem
を表示/非表示にする正しい/最も効率的な方法は何ですか?
更新
私は次を試しました:
self.deleteBarButton.hidden = true
しかし、次のエラーが表示されます。
UIBarButtonItem
には 'hidden'という名前のメンバーがありません
答えが得られました!あなたがしなければならないのは、strong IBOutlet
、次のことができます。
// viewDidLoad
self.navigationItem.rightBarButtonItem = nil
// Later on...
self.navigationItem.rightBarButtonItem = self.deleteBarButton
更新2
ボタンのテキストを何も設定しないでください:
self.deleteBarButton.title = "";
更新1
enabled
プロパティを使用して、次のようにボタンを照らします(ボタンを完全に非表示にするわけではありませんが、アクションを実行しないことをユーザーに知らせることができます)。
これは変数として機能し、ボタンがケースに隠れていることを知らせます:
点灯:(ViewDidLoadに配置)
self.deleteBarButton.enabled = true;
暗く:(後で配置)
self.deleteBarButton.enabled = false;
それから、以下を追加して完全に消えます:
self.navigationController?.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor();
ViewDidLoadでbarButtonを手動で作成してから、ボタンを表示/非表示にしてみてください。
コード:
var barButton: UIBarButtonItem!
func viewDidLoad() {
super.viewDidLoad()
barButton = UIBarButtonItem(title: "Title", style: .Plain, target: self, action: Selector("target_function"))
self.navigationItem.rightBarButtonItem = barButton
}
func someFunction() {
self.navigationItem.rightBarButtonItem = nil
// or
self.navigationItem.rightBarButtonItem = barButton
}
これは私に最適です!!
self.navBar.title = ""
self.navBar.enabled = false