iOS UIButton、setEnabled和button.hidden不工作

iOS UIButton、setEnabled和button.hidden不工作,ios,events,uibutton,ibaction,iboutlet,Ios,Events,Uibutton,Ibaction,Iboutlet,我已经尝试了所有我在SO上找到的答案,所以要么我有不同的问题,要么我的大脑发热 无论如何,我在故事板上有一个UIButton,它链接到一个叫做_cameraButtonPress(UIButton叫做_cameraButton)的iAction。当按下按钮时,我想禁用按钮一段时间,因此我立即调用[sender setEnabled:NO];这个很好用。但是,在另一个保存图像的函数中,成功保存后,我使用[\u cameraButton.setEnabled:YES];这是行不通的 如果在iActi

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

无论如何,我在故事板上有一个UIButton,它链接到一个叫做_cameraButtonPress(UIButton叫做_cameraButton)的iAction。当按下按钮时,我想禁用按钮一段时间,因此我立即调用[sender setEnabled:NO];这个很好用。但是,在另一个保存图像的函数中,成功保存后,我使用[\u cameraButton.setEnabled:YES];这是行不通的

如果在iAction调用的函数中用_cameraButton替换sender,这也不起作用。我将UIButton与IBOutlet链接

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

在标题中

IBOutlet UIButton *_cameraButton;
IBAction

- (IBAction) _cameraButtonPress:(id)sender {

[sender setEnabled:NO];  //stops button responding to touch events
在另一个功能中进一步向下:

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


}
有什么想法吗


谢谢。

你确定你已经用
ui按钮连接了摄像头按钮吗?尝试记录“cameraButton”以查看它是否包含对有效对象的引用

NSLog(@"%@", _cameraButton);

您确定已将摄像头按钮连接到
ui按钮
?尝试记录“cameraButton”以查看它是否包含对有效对象的引用

NSLog(@"%@", _cameraButton);

保罗的答案是最符合逻辑的问题

另外,下划线约定用于区分IVAR和属性。因此,您的属性类似于(对于弧):

如果您需要ivar,您的
@synthesis
语句可以是:

@synthesize cameraButton = _cameraButton;
与其他属性相比,这与按钮的相关性可能较小,但良好实践建议为与已声明属性关联的IVAR加下划线,而不是为属性本身加下划线


参见苹果公司的可可编码指南。

保罗的答案是最符合逻辑的问题

另外,下划线约定用于区分IVAR和属性。因此,您的属性类似于(对于弧):

如果您需要ivar,您的
@synthesis
语句可以是:

@synthesize cameraButton = _cameraButton;
与其他属性相比,这与按钮的相关性可能较小,但良好实践建议为与已声明属性关联的IVAR加下划线,而不是为属性本身加下划线


请参阅苹果的Cocoa编码指南。

作为测试,在_cameraButtonPress中添加一行代码:
如果(发送方==_cameraButton){NSLog(@“发送方是_cameraButton”)}
如果没有,则按钮链接不正确,这是您的问题。是的,链接很好,日志显示_cameraButton就是发送方。但是,干杯:你有多个按钮连接到摄像头按钮吗?没有,只有一个链接。我真的被这个弄糊涂了。作为测试,在_cameraButtonPress中添加一行代码:
if(sender==_cameraButton){NSLog(@“sender is _cameraButton”)}
如果没有,那么按钮链接不正确,这就是你的问题。耶,链接很好,日志显示_cameraButton就是发送者。但是,干杯:你有多个按钮连接到摄像头按钮吗?没有,只有一个链接。我真的被这句话弄糊涂了。谢谢,我开始用下划线,因为我现在记不起来了,但是的,我还是要坚持惯例。我会改的。谢谢,我开始是用下划线,因为我现在记不起来了,不过是的,坚持惯例对我有好处。我来换。你好。是的,连接都很好。事实证明,这个问题是我怀疑任何人都能解决的,项目的快速关闭和重新打开解决了这个问题。所以我猜这是Xcode的一个怪癖。最近我一直很烦。谢谢你的帮助。你好。是的,连接都很好。事实证明,这个问题是我怀疑任何人都能解决的,项目的快速关闭和重新打开解决了这个问题。所以我猜这是Xcode的一个怪癖。最近我一直很烦。谢谢你的帮助。