覆盖IOS UIButton按钮按下

覆盖IOS UIButton按钮按下,ios,objective-c,uibutton,uikit,Ios,Objective C,Uibutton,Uikit,我有一个viewDidLoad中的ViewController.m文件: _registerButton = [AuthButton buttonWithType:UIButtonTypeSystem]; [_registerButton setTitle:@"Register" forState:UIControlStateNormal]; _registerButton.frame = CGRectMake(0.0, 0.0, self.screenWidth / 2.0 - 1.0, 60

我有一个viewDidLoad中的ViewController.m文件:

_registerButton = [AuthButton buttonWithType:UIButtonTypeSystem];
[_registerButton setTitle:@"Register" forState:UIControlStateNormal];
_registerButton.frame = CGRectMake(0.0, 0.0, self.screenWidth / 2.0 - 1.0, 60.0);

[_registerButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];

...

 (IBAction)buttonPressed:(UIButton *)sender
{
    //sentder.titleLabel
    [sender setTitle:@"Registers" forState:UIControlStateNormal];
} 

registerButton是通过属性声明的AuthButton。如何覆盖buttonPressed并将iAction代码移动到AuthButton.m类?语法混乱(objective-c新增)。

您需要的是
addTarget
属性。在您的示例中,目标是
self
,因此按钮按下事件在当前对象中查找选择器


如果您将目标更改为
AuthButton
的实例,并在
AuthButton.m
中编写相应的选择器,您应该很好。

为此,您必须使用协议。请检查:-为什么不将目标声明为您的AuthButton?smth like:[_registerButtonaddTarget:_registerButtonaction:@selector(buttonPressed)for controlEvents:UIControlEventTouchUpInside];你是说在视图控制器内?我只是想让它变得更酷我的意思是你根本不需要IBAction。“addTarget:object”对象有一个类负责处理按钮按下事件。只需设置您需要的目标并在那个里实现“buttonPressed”方法。