Jes*_*ica 41 uibarbuttonitem ios swift
我正试图显示/隐藏一个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
Run Code Online (Sandbox Code Playgroud)
当我设置self.deleteBarButton
为rightBarButtonItem
,没有任何反应.它没有显示出来.我做错了什么,显示/隐藏一个正确/最有效的方法是barButtonItem
什么?
更新
我尝试了以下方法:
self.deleteBarButton.hidden = true
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
UIBarButtonItem
没有名为'hidden'的成员
Jes*_*ica 77
刚拿到答案!您所要做的就是创建一个strong IBOutlet
,然后您可以执行以下操作:
// viewDidLoad
self.navigationItem.rightBarButtonItem = nil
// Later on...
self.navigationItem.rightBarButtonItem = self.deleteBarButton
Run Code Online (Sandbox Code Playgroud)
Jak*_*san 26
更新2
您可以将按钮的文本设置为空:
self.deleteBarButton.title = "";
Run Code Online (Sandbox Code Playgroud)
更新1
我会使用enabled
属性来照亮按钮,如下所示(虽然它不会完全使按钮不可见,但它允许用户知道它不会执行操作).
这可以作为一个变量,让您知道按钮隐藏在您的案例中:
发光:(放置在ViewDidLoad中)
self.deleteBarButton.enabled = true;
Run Code Online (Sandbox Code Playgroud)
变暗了:(稍后放置)
self.deleteBarButton.enabled = false;
Run Code Online (Sandbox Code Playgroud)
然后我会添加以下内容使其完全消失:
self.navigationController?.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor();
Run Code Online (Sandbox Code Playgroud)
尝试在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
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39747 次 |
最近记录: |