以编程方式禁用UIButton

我很难为什么这个代码不工作。 我有一个loginbutton,当用户没有login时,我想禁用它。

我有一个UIButton在我的.h文件中,如下所示:

IBOutlet UIButton *myBtn; 

我已经在Interface Builder中为此button设置了一个引用sockets。

在我的.m文件中,我试过了:

 [myBtn setEnabled: NO]; 

 myBtn.enabled = NO; 

但是,这些都不能禁用条件语句中的button(我想在用户成功login时禁用loginbutton)

我可以在同一个屏幕上使用另外两个button来做到这一点,所以我知道代码是正确的。 我不会抛出任何错误,所以我认为这个对象是存在的。 对myBtn的引用也改变了XCode的颜色,所以它似乎是一个有效的引用。

我肯定错过了什么。 我在这里做错了什么? (我是一名Windows开发人员,在Objective-C上相对较新)

对我来说似乎没问题。 你在合成这个button吗? 尝试

 self.myBtn.enabled = NO; 

您应该将您的button设置为IBOutlet。

 @property (weak, nonatomic) IBOutlet UIButton *myBtn; 

这样,你可以连接故事板中的button。 这可能是你的问题。

然后调用这个来禁用。

 [_myBtn setEnabled:NO]; 

试试这个..

.h

 @property(nonatomic,retain)UIButton *myBtn; 

.m

 @synthesize myBtn; 

然后,replace你的[myBtn setEnabled: NO]; 代码与[self.myBtn setEnabled: NO]; 码。

如果你正在寻找swift代码:

 var button = UIButton() button.enabled = false //disable the button 

如果你正在寻找Swift3解决scheme

 var myBtn = UIButton() myBtn.isEnabled = true