如何禁用子视图上的 IBAction 按钮
Posted
技术标签:
【中文标题】如何禁用子视图上的 IBAction 按钮【英文标题】:How to Disable IBAction Button, that is on subView 【发布时间】:2014-02-28 13:32:52 【问题描述】:我有一个通过连接检查器正确连接的 IBAction 按钮……
在“.h”中
- (IBAction)Download;
在我的 '.m' 中也有同名方法
- (void) Download
// Code for data download
当我按下按钮时,它可以很好地下载数据……
我的问题是,如果用户的支持有限,那么他们就无法下载数据……显然 下载 IBAction 按钮已禁用… 是的,这个按钮在 subView 上。
这个问题我该怎么办……???
【问题讨论】:
不清楚你在问什么。 在您的 Download 方法中创建一个 if 语句来检查是否允许某人执行那段代码?也就是说,如果我正确理解了这个问题.. 您可以将按钮的用户交互设置为False。 您可以禁用按钮或显示 UILable 说明网络不可用或隐藏按钮。 @exceptionx0000f 我该怎么做?你能帮帮我吗? 【参考方案1】:使用
yourbtn.enabled = NO;
禁用按钮以及何时启用
yourbtn.enabled = YES;
【讨论】:
下载未声明….【参考方案2】:通过界面生成器创建按钮的IBoutlet,并将按钮的userinteractionenabled设置为NO。
在您的下载按钮操作中,执行此操作
if(condition)
//code to download
else
[self.downloadButton setuserinteractionenabled : NO];
【讨论】:
接收器类型错误 Void 你是用void方法还是ibaction写代码??如果在 void 方法中,那么您是在 ibaction 中调用该方法吗?? 按下按钮时调用此方法 我想要的只是禁用这个按钮【参考方案3】:如果您不需要重新激活按钮,请尝试此操作。如果您需要重新激活,您需要拥有一个 IBOutlet。
在你的 .h 中
- (IBAction)Download:(UIButton *)sender;
在您的 .m 中
- (IBAction) Download:(UIButton *)sender
if (test not ok)
sender.enabled = NO;
else
perform download....
【讨论】:
【参考方案4】:我发现有用的是:
在 ViewController 的界面中为情节提要中所需的按钮创建 IBOutlet 连接。
IBOutlet UIButton *actionButton;
现在,如果您想禁用它。
actionButton.userInteractionEnabled = NO;
如果你想让它再次启用
actionButton.userInteractionEnabled = YES;
【讨论】:
以上是关于如何禁用子视图上的 IBAction 按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何在禁用父视图(不是子视图)的父视图上打开子视图(自定义)?