如何禁用子视图上的 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 按钮的主要内容,如果未能解决你的问题,请参考以下文章

单击子视图上的按钮时执行错误访问

如何在禁用父视图(不是子视图)的父视图上打开子视图(自定义)?

从 NIB 子视图按钮执行视图序列

iPhone UIView 动画禁用 UIButton 子视图

如何在 SwiftUI 中禁用子视图上的特定状态更改动画

如何以编程方式禁用/启用UIBarButtonItem