iOS 给Button点击事件添加代理进行传值

LoginView.h

#import <UIKit/UIKit.h>

@protocol LoginButtonDelegete <NSObject>

//修饰协议方法  
//@optional--协议方法可实现也可不实现
//@required--协议方法必须实现
@optional

//即协议方法(点击按钮后要做的事情)
- (void) loginWithUserName:(NSString *)userName password:(NSString *)psdStr;

@end

@interface LoginView : UIView
//委托回调接口 用weak描述代理
@property (nonatomic, weak) id <LoginButtonDelegete> loginDelegate;

@end

LoginView.m

- (UIButton *)loginBtn {
    if (!_loginBtn) {
        _loginBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        _loginBtn.backgroundColor = BLUE_COLOR;
        _loginBtn.titleLabel.font = kFontSize(14);
        [_loginBtn setTitleColor:WHITE_FONT_COLOR forState:UIControlStateNormal];
        _loginBtn.layer.cornerRadius = 5;
        _loginBtn.clipsToBounds = YES;
        [_loginBtn setTitle:@"登录" forState:UIControlStateNormal];
        [_loginBtn addTarget:self action:@selector(loginBtnClick) forControlEvents:UIControlEventTouchUpInside];
    }
    return _loginBtn;
}

//btn点击事件  点击后给Controller传值,用户名和密码,或者用通知传值,此处用代理
- (void) loginBtnClick {
        if ([self.loginDelegate respondsToSelector:@selector(loginWithUserName:password:)]) {
            [self.loginDelegate loginWithUserName:_userID password:_userPsd];
}

LoginViewController.m

#import "LoginViewController.h"
#import "LoginView.h"
//声明协议
@interface LoginViewController ()<LoginButtonDelegete>

@end

@implementation LoginViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}

//遵守协议
- (UIView *)loginView {
    if (!_loginView) {
        _loginView = [[LoginView alloc] initWithViewType:LoginViewType];
        _loginView.loginDelegate = self;
    }
    return _loginView;
}

- (void)setupView{
    self.view = self.loginView;
}

//协议方法 传值
- (void) loginWithUserName:(NSString *)userName password:(NSString *)psdStr {
    [kNotificationCenter addObserver:self selector:@selector(getLoginSucceed:) name:LOGIN_IS_SUCCEED object:nil];
    [[PlatformInterface sharedInstance].loginRegisterInterface requestLoginWithUserName:userName password:psdStr];
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容