以登录注册页面举例
代码这里省略掉登录、注册页面中的view.h view.m
登录页面中有: loginButton,registerButton,nameTextfield,passTextField;
注册页面中有:confirmButton,nameTextfield,passTextField
//注册 RegisterView.h中
#import <UIKit/UIKit.h>
#import "RegisterView.h"
NS_ASSUME_NONNULL_BEGIN
@interface RegisterController : UIViewController
@property RegisterView *registerView;
@property NSString *str;
@property UIButton *btn;
//第1步 声明block
//block 变量的声明格式:返回值类型(^block名字)(参数列表);
//@property void (^block1) (NSString *name, NSString *pass);
//省略写法
@property void (^block1) (NSString *, NSString *);
@end
//注册 RegisterView.m中
#import "RegisterController.h"
@interface RegisterController ()
@end
@implementation RegisterController
- (void)viewDidLoad {
[super viewDidLoad];
_registerView = [[RegisterView alloc] initWithFrame:self.view.frame];
[self.view addSubview:_registerView];
[_registerView initView];
[_registerView.confirmButton addTarget:self action:@selector(pressBack) forControlEvents:UIControlEventTouchUpInside];
}
- (void)pressBack {
//第2步 得到要传的属性
_block1(_registerView.nameTextfield.text, _registerView.passTextField.text);
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
//登录 LoginViewController.h中
#import <UIKit/UIKit.h>
#import "View.h"
NS_ASSUME_NONNULL_BEGIN
@interface LoginViewController: UIViewController
@property View *loginView;
@end
// 登录 LoginViewController.m中
#import "LoginController.h"
#import "RegisterController.h"
#import "View.h"
@interface Controller ()
@end
@implementation Controller
- (void)viewDidLoad {
[super viewDidLoad];
_loginView = [[View alloc] initWithFrame:self.view.frame];
[self.view addSubview:_loginView];
[_loginView initView];
[_loginView.registerButton addTarget:self action:@selector(pressRegister) forControlEvents:UIControlEventTouchUpInside];
}
- (void)pressRegister {
RegisterController * registerController = [[RegisterController alloc] init];
//第三步 回调, 将registerController页面的值传回来
registerController.block1 = ^(NSString * name, NSString * pass) {
self.loginView.nameTextfield.text = name;
self.loginView.passTextField.text = pass;
};
[self presentViewController:registerController animated:YES completion:nil];
}
@end
效果图如下:
登录界面开始的样子
点击注册,并输入信息
点击确定返回登录页面, 登录页面如图