如何在目标c

时间:2016-10-25 15:33:20

标签: ios objective-c objective-c-category

我想要UIButton TouchUpInside控件事件的相同操作。例如:

[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

我想在整个应用程序中概括buttonAction。这样做的最佳方法是什么?这是否可以使用类别?或继承?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以在类中添加此方法,并将类名放入目标。

YourClass *class = [YouClass alloc]init];
[button addTarget:class action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

或者你可以使用像这样的访问者来获取课程

[button addTarget:[A getClassA] action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

@implementation A
  +(YouClass *) getClassA{
    //get instance if already initialized or init it
    //and return the instance
  }
@end

答案 1 :(得分:0)

解决方案取决于您想要实现的目标。如果您希望通用操作在整个使用按钮的应用程序中修改事件,那么使用类别就可以了。 如果要向基类添加新行为(如向按钮添加自定义布局),则子类化很有用。

我希望这有助于你的方法!