因为我们大多数人在代码中而不是Interface Builder中创建视图,所以我开始想到IBOutlet和IBAction在Obj-C中是什么。当Interface Builder不被使用时,IBOutlet和IBAction在Objective C中相当于
这是真的,IBOutlet中的等效将等同于该属性的代表设置为视图控制器和IBAction为将相当于添加目标动作,例如:
rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
//这里
[rightButton addTarget:self action:@selector(firesRightButton) forControlEvents:UIControlEventTouchUpInside];
额外的垃圾//关闭以任务完成
如果有人能证实(或只是简单的状态正确的例子),那挺棒的。
这篇文章的直接原因是我看到IBOutlet在某个属性旁边的某个代码中声明,当时Interface Builder根本没有涉及到。
@interface SomeViewController : UIViewController
@property (nonatomic, weak) IBOutlet UISwitch *switch;
@end
如果在项目中没有使用Interface Builder,这个开关IBOutlet的意思是什么?
是的,我们都知道,无论IBOutlet中,IBAction为预处理器解析后,不解决任何东西......
如果您没有使用Interface Builder(并且我不知道是否可以说*大多数人使用代码而不是IB),那么@IBAction和@IBOutlet就没有意义了。 “@ IBOutlet”的“等价物”就是没有它的同一个属性,“@ IBAction”的“等价物”只是一个具有您设置为动作处理程序的正确签名的方法。 @IBOutlet与对象的委托属性完全不同。 – Paulw11