【问题标题】:iOS - set UIButton target and action from its super classiOS - 从其超类设置 UIButton 目标和操作
【发布时间】:2013-06-24 12:45:17
【问题描述】:

我有 2 节课 A类:UIView ClassB:UIViewController

我在 ClassA 中有一个 UIButton

按钮在标题中声明为 A 的 @property

UIButton *selectBtn;    
}
@property (nonatomic, strong) UIButton *selectBtn;

在 Class A 的 .m 文件中,按钮被初始化并显示在屏幕上

ClassB 导入 ClassA 的头文件,我正在尝试使用以下内容为我的按钮设置目标和操作

[ClassA.selectBtn addTarget:self action:@selector(getSomething:)     forControlEvents:UIControlEventTouchUpInside];

但我不断收到一条错误消息说 “在“ClassA”类型的对象上找不到属性“selectBtn”

我做错了什么? 非常感谢任何帮助或指导

【问题讨论】:

    标签: ios uiview uiviewcontroller uibutton


    【解决方案1】:
    [ClassA.selectPicBtn addTarget:self action:@selector(getSomething:)     forControlEvents:UIControlEventTouchUpInside];
    

    使用 selectPIcBtn 代替 selectBtn

    【讨论】:

    • 您好,观察结果很好,但还是没用。 . .任何其他想法。 . .仍然有同样的问题。 . . (我还在上面的问题中编辑了代码) - 不过我会为你的努力表示支持:谢谢
    • 我没有发现任何其他问题。你合成属性了吗?
    【解决方案2】:

    我不知道我是否遗漏了什么,因为其他海报都没有提到这一点,但据我所知,selectBtn 是 ClassA 实例的属性,而不是类本身的属性。尝试抓取 ClassA 对象的实例,然后从该实例访问属性:

    //WRONG
    [ClassA.selectBtn addTarget:self action:@selector(getSomething:) forControlEvents:UIControlEventTouchUpInside];
    
    //Correct
    ClassA *aClassAObject = [[ClassA alloc] init];
    [aClassAObject.selectBtn addTarget:self action:@selector(getSomething:) forControlEvents:UIControlEventTouchUpInside];
    

    请记住,上面的代码只是一个示例,不太可能是您要查找的对象。如果您在 ClassB 对象中执行此操作,则必须获取 ClassB UIViewController 正在使用的 ClassA UIView。通常,我会在 ClassB 中创建一个属性来访问 ClassA 对象,类似于为 UIButton 对象创建属性的方式,但我不确定在没有看到头文件的情况下如何设置类。

    【讨论】:

      【解决方案3】:

      问题来了。

      UIButton *selectBtn;    
      }
      @property (nonatomic, strong) UIButton *selectPicBtn;
      

      selectBtn 和 selectPicBtn 是不同的。属性名称应与变量名称相同。如果你已经声明了一个属性,那么你就不需要声明变量了。

      只声明属性并使用它。初始化时,在Class A中初始化self.selectPicBtn = [UIButton....

      【讨论】:

      • 摆脱了按钮声明,仍然没有成功:(
      猜你喜欢
      • 1970-01-01
      • 2014-10-17
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      相关资源
      最近更新 更多