繁体   English   中英

iOS-从其超类设置UIButton目标和操作

[英]iOS - set UIButton target and action from its super class

我有2个类ClassA:UIView ClassB:UIViewController

我在ClassA中有一个UIButton

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

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

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

ClassB导入ClassA的头文件,并从中尝试用以下命令设置按钮的目标和操作

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

但是我不断收到一条错误消息,提示“类型A”的对象上找不到“属性“ selectBtn”

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

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

使用selectPIcBtn而不是selectBtn

我不知道我是否缺少任何东西,因为其他海报都没有提出,但是从我看来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对象创建属性的方式,但是我不确定如何设置类而不看到头文件。

问题在这里。

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

selectBtn和selectPicBtn不同。 属性名称应与变量名称相同。 如果声明了属性,则不需要变量声明。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM