iOS UIButton,setEnabled和button.hidden 不起作用



我已经尝试了我在SO上找到的所有答案,所以要么我遇到了不同的问题,要么热量进入了我的大脑。

无论如何,我在故事板上有一个UIButton,它链接到一个名为_cameraButtonPress的IBAction(UIButton称为_cameraButton)。 按下按钮时,我想暂时禁用该按钮,所以我立即致电[发件人设置启用:否];这工作正常。 但是,在保存图像的不同函数中,成功保存后我使用 [_cameraButton.setEnabled:YES]; 这行不通。

如果我在 IBAction 调用的函数中将发送者替换为 _cameraButton,这也不起作用。 我有UIButton与IBOutlet链接。

我可以发布代码,但现在这是一个相当大的项目,以下是相关位:

在标题中...

IBOutlet UIButton *_cameraButton;

国际文凭组织...

- (IBAction) _cameraButtonPress:(id)sender {
[sender setEnabled:NO];  //stops button responding to touch events

进一步向下使用不同的功能:

} else {
    NSLog(@"colour image saved successfully");
    [_cameraButton setEnabled:YES];

}

有什么想法吗?

谢谢。

您确定已将_cameraButton与UIButton连接在一起吗?尝试记录_cameraButton以查看它是否包含对有效对象的引用。

NSLog(@"%@", _cameraButton);

保罗的回答是最合乎逻辑的问题。

顺便说一句,下划线约定用于区分 ivar 和属性。因此,您将有一个类似(对于 ARC)的属性:

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

而且,如果您需要ivar,您的@synthesize语句可以是:

@synthesize cameraButton = _cameraButton;

与其他属性相比,这可能与按钮不太相关,但良好做法建议下划线用于与声明属性关联的 ivar,而不是属性本身。

请参阅 Apple 的 Cocoa 编码指南中的命名属性和数据类型。

最新更新