iOS – 从其超类设置UIButton目标和操作
我有2类ClassA:UIView ClassB:UIViewController
我在ClassA中有一个UIButton
该button在标题中声明,并作为A的@属性
UIButton *selectBtn; } @property (nonatomic, strong) UIButton *selectBtn;
在A类的.m文件中,button被初始化并显示在屏幕上
ClassB导入ClassA的头文件,并从它我试图设置目标和我的button与下面的动作
[ClassA.selectBtn addTarget:self action:@selector(getSomething:) forControlEvents:UIControlEventTouchUpInside];
但我不断收到一个错误消息,说“属性”selectBtn“找不到对象的types”ClassA“
我究竟做错了什么 ? 任何帮助或指导,非常感激
[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中创build一个属性来访问ClassA对象,类似于为UIButton对象创build属性的方式,但是我不知道如何在没有看到头文件的情况下设置类的设置。
问题在这里。
UIButton *selectBtn; } @property (nonatomic, strong) UIButton *selectPicBtn;
selectBtn和selectPicBtn是不同的。 属性名称应该与variables名称相同。 如果你已经声明了一个属性,那么你不需要variables声明。
只声明属性并使用它。 初始化时,初始化self.selectPicBtn = [UIButton....
在Class A