Show/Hide barButtonItem
Show/Hide barButtonItem
我正在尝试 show/hide UIBarButtonItem
。我在storyboard
的右边加了一个barButton
。然后在viewDidLoad
中,我把rightBarButtonItem
变成了nil
。后来,我把它设置为我在 storyboard
中添加的 button
。这是我的代码:
// 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
时,没有任何反应。它没有显示它。我做错了什么,correct/most 有效的 show/hide 方法是什么 barButtonItem
?
更新
我尝试了以下方法:
self.deleteBarButton.hidden = true
但我收到以下错误:
UIBarButtonItem
does not have a member named 'hidden'
更新 2
您可以将按钮的文本设置为空:
self.deleteBarButton.title = "";
更新 1
我会用enabled
属性照亮按钮如下(虽然它不能完全使按钮不可见,但它让用户知道它不会执行操作)。
这可以作为一个变量让您知道按钮在您的案例中是隐藏的:
发光:(放置在 ViewDidLoad 中)
self.deleteBarButton.enabled = true;
变暗:(稍后放置)
self.deleteBarButton.enabled = false;
然后我将添加以下内容以使其完全消失:
self.navigationController?.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor();
尝试在 viewDidLoad 中手动创建您的 barButton,然后 show/hide 您的按钮。
代码:
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
}
刚刚得到答案!您所要做的就是创建一个 strong IBOutlet
,然后您可以执行以下操作:
// viewDidLoad
self.navigationItem.rightBarButtonItem = nil
// Later on...
self.navigationItem.rightBarButtonItem = self.deleteBarButton
我正在尝试 show/hide UIBarButtonItem
。我在storyboard
的右边加了一个barButton
。然后在viewDidLoad
中,我把rightBarButtonItem
变成了nil
。后来,我把它设置为我在 storyboard
中添加的 button
。这是我的代码:
// 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
时,没有任何反应。它没有显示它。我做错了什么,correct/most 有效的 show/hide 方法是什么 barButtonItem
?
更新
我尝试了以下方法:
self.deleteBarButton.hidden = true
但我收到以下错误:
UIBarButtonItem
does not have a member named 'hidden'
更新 2
您可以将按钮的文本设置为空:
self.deleteBarButton.title = "";
更新 1
我会用enabled
属性照亮按钮如下(虽然它不能完全使按钮不可见,但它让用户知道它不会执行操作)。
这可以作为一个变量让您知道按钮在您的案例中是隐藏的:
发光:(放置在 ViewDidLoad 中)
self.deleteBarButton.enabled = true;
变暗:(稍后放置)
self.deleteBarButton.enabled = false;
然后我将添加以下内容以使其完全消失:
self.navigationController?.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor();
尝试在 viewDidLoad 中手动创建您的 barButton,然后 show/hide 您的按钮。
代码:
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
}
刚刚得到答案!您所要做的就是创建一个 strong IBOutlet
,然后您可以执行以下操作:
// viewDidLoad
self.navigationItem.rightBarButtonItem = nil
// Later on...
self.navigationItem.rightBarButtonItem = self.deleteBarButton