LoginView.h文件
-(void)dealloc{
[_nameLabel release];
[_nameTextField release];
[_pwdLabel release];
[_pwdTextField release];
[_findBackPwdBtn release];
[_regsiterBtn release];
[_findBackPwdBtn release];
[super dealloc];
}
-(instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if(self){
NSArray * labelArray = [NSArray arrayWithObjects:@"用户",@"密码", nil];
//text
NSArray * textArray = [NSArray arrayWithObjects:@"请输入用户名",@"请输入密码", nil];
NSArray * buttonArray = [NSArray arrayWithObjects:@"登陆",@"注册",@"找回密码", nil];
for(int i = 0;i < 2;i ++){
UILabel * lable = [[UILabel alloc] initWithFrame:CGRectMake(40, 35 + 50 * i, (frame.size.width-40)/3.0, 35)];
lable.text = labelArray[i];
//text
UITextField * textField = [[UITextField alloc] initWithFrame:CGRectMake(frame.size.width/3.0, 35+50*i, frame.size.width/3.0*2, 35)];
textField.placeholder = textArray[i];
if(i == 0){
self.nameLabel = lable;
self.nameTextField = textField;
}
else{
self.pwdLabel = lable;
self.pwdTextField = textField;
//密文输入
textField.secureTextEntry = YES;
}
[self addSubview:lable];
[self addSubview:textField];
[lable release];
[textField release];
}
for (int i = 0; i < 3; i++) {
UIButton * btn = [UIButton buttonWithType:UIButtonTypeSystem];
btn.frame = CGRectMake(20 + ((frame.size.width - 80)/3.0 + 20) * i,135,(frame.size.width - 4 *20)/3.0, 35);
[btn setTitle:buttonArray[i] forState:UIControlStateNormal];
if (i == 0) {
self.loginBtn = btn;
}
else if (i == 1){
self.regsiterBtn = btn;
}
else{
self.findBackPwdBtn = btn;
}
[self addSubview:btn];
}
}
return self;
}
LoginViewController.h
@interface LoginViewController ()
//延展声明属性
@property (nonatomic,retain)LoginView * loginView;
//设置属性
@end
@implementation LoginViewController
//释放内存
-(void)dealloc{
[_loginView release];
[super dealloc];
}
//loadView
-(void)loadView{
_loginView = [[[LoginView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
self.view = _loginView;
}
//view
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
_loginView.findBackPwdBtn.tag = 402;
_loginView.loginBtn.tag = 400;
_loginView.regsiterBtn.tag =401;
_loginView.nameTextField.delegate = self;
_loginView.nameTextField.returnKeyType = UIReturnKeyNext;
_loginView.nameTextField.tag = 120;
_loginView.pwdTextField.delegate = self;
_loginView.pwdTextField.tag = 121;
//切换处理事件
[_loginView.regsiterBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
[_loginView.findBackPwdBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
[_loginView.loginBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
if (textField.tag == 120) {
[_loginView.pwdTextField becomeFirstResponder];
return YES;
}
[textField resignFirstResponder];
return YES;
}
Registview.h文件
@implementation Registview
//初始化
-(void)dealloc{
[_phoneNumLabel release];
[_phoneNumTextField release];
[_nameLabel release];
[_nameTextField release];
[_confpwdLabel release];
[_confpwdTextField release];
[_pwdLabel release];
[_pwdTextField release];
[_mailLabel release];
[_mailTextField release];
[super dealloc];
}
//自定义
-(instancetype)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]) {
NSArray * lableArray = [NSArray arrayWithObjects:@"用户名",@"密码",@"确认密码",@"手机号",@"邮箱", nil];
NSArray * textfiledArray = [NSArray arrayWithObjects:@"请输入用户名",@"请输入密码",@"请再次输入密码",@"请输入手机号",@"请输入邮箱", nil];
for (int i = 0; i < 5; i ++) {
//label
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(50, 40 + i * 50, (frame.size.width - 50)/3.0 , 40)];
label.backgroundColor = [UIColor whiteColor];
label.text = lableArray[i];
label.textAlignment = NSTextAlignmentLeft;
//textfield
UITextField * textFiled = [[UITextField alloc]initWithFrame:CGRectMake((frame.size.width)/3.0, 40 + i * 50, (frame.size.width - 50)/3.0 * 2, 40)];
textFiled.borderStyle = UITextBorderStyleRoundedRect;
textFiled.placeholder = textfiledArray[i];
textFiled.backgroundColor = [UIColor whiteColor];
if (i == 0)
{
self.nameLabel = label;
self.nameTextField = textFiled;
}
else if (i == 1){
self.pwdLabel = label;
self.pwdTextField = textFiled;
//密文处理
textFiled.secureTextEntry = YES;
}
else if (i == 2){
self.confpwdLabel = label;
self.confpwdTextField = textFiled;
//密文处理
textFiled.secureTextEntry = YES;
}
else if (i == 3){
self.phoneNumLabel = label;
self.phoneNumTextField = textFiled;
}
else {
self.mailLabel = label;
self.mailTextField = textFiled;
}
[self addSubview:label];
[label release];
[self addSubview:textFiled];
[textFiled release];
}
}
for (int i = 0; i < 2; i++) {
UIButton * btn = [UIButton buttonWithType:UIButtonTypeSystem];
btn.frame = CGRectMake(100 + i * 100, 320, 80, 40);
btn.backgroundColor= [UIColor grayColor];
[self addSubview:btn];
if (i == 0) {
self.regsiterBtn = btn;
[btn setTitle:@"注册" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
}
else{
self.cacleBtn = btn;
[btn setTitle:@"取消" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
}
}
return self;
}
RegistViewController.h
@implementation RegistViewController
//内存处理
-(void)dealloc{
[_registView release];
[super dealloc];
}
//界面初始化
-(void)loadView{
_registView = [[[Registview alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
self.view = _registView;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//registView界面背景
_registView.backgroundColor = [UIColor whiteColor];
//定义每个tag值
_registView.nameLabel.tag = 200;
_registView.pwdLabel.tag = 201;
_registView.confpwdTextField.tag = 202;
_registView.phoneNumLabel.tag = 203;
_registView.mailLabel.tag = 204;
_registView.nameTextField.tag = 210;
_registView.pwdTextField.tag = 211;
_registView.confpwdTextField.tag = 212;
_registView.phoneNumTextField.tag = 213;
_registView.mailTextField.tag = 214;
_registView.regsiterBtn.tag = 220;
_registView.cacleBtn.tag = 221;
//代理
_registView.nameTextField.delegate = self;
_registView.pwdTextField.delegate = self;
_registView.confpwdTextField.delegate = self;
_registView.phoneNumTextField.delegate = self;
_registView.mailTextField.delegate = self;
//键盘
_registView.nameTextField.returnKeyType = UIReturnKeyNext;
_registView.pwdTextField.returnKeyType = UIReturnKeyNext;
_registView.confpwdTextField.returnKeyType =UIReturnKeyNext;
_registView.phoneNumTextField.keyboardType = UIKeyboardTypeNumberPad;
_registView.regsiterBtn.tag = 300;
[_registView.regsiterBtn addTarget:self action:@selector(resignFinished:) forControlEvents:UIControlEventTouchUpInside];
_registView.regsiterBtn.tag = 301;
[_registView.cacleBtn addTarget:self action:@selector(resignFinished:) forControlEvents:UIControlEventTouchUpInside];
}
//键盘响应事件
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
if (textField.tag == 210) {
[_registView.pwdTextField becomeFirstResponder];
return YES;
} else if(textField.tag == 211){
[_registView.confpwdTextField becomeFirstResponder];
return YES;
}
else if (textField.tag == 212){
[_registView.phoneNumTextField becomeFirstResponder];
return YES;
}
else if (textField.tag == 213){
[_registView.mailTextField becomeFirstResponder];
return YES;
}
[textField resignFirstResponder];
return YES;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//注册完成提示函数
-(void)resignFinished:(UIButton *)sender{
//判断注册框不能为空
if (!([_registView.nameTextField.text isEqualToString:@""]&&[_registView.phoneNumTextField.text isEqualToString:@""]&&[_registView.pwdTextField.text isEqualToString:@""]&&[_registView.mailTextField.text isEqualToString:@""]&&[_registView.confpwdTextField.text isEqualToString:@""])) {
if ([_registView.pwdTextField.text isEqualToString:_registView.confpwdTextField.text]) {
UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"注册成功" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alert show];
alert.delegate = self;
[alert release];
}
else{
UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"密码两次输入不一致" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alert show];
[alert release];
}
}
else{
UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"注册不成功" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alert show];
[alert release];
}
}
//alert代理
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
// [_registView.regsiterBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
[_registView.mailTextField resignFirstResponder];
}
PasswordView.h
@implementation PasswordView
-(void)dealloc{
[_pswTextField release];
[super dealloc];
}
//定义视图
-(instancetype)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]) {
//textField
UITextField * textFiled = [[UITextField alloc]initWithFrame:CGRectMake(80, 50, 220, 40)];
textFiled.backgroundColor = [UIColor whiteColor];
textFiled.borderStyle = UITextBorderStyleRoundedRect;
textFiled.placeholder = @"电子邮箱";
self.pswTextField = textFiled;
[self addSubview:textFiled];
[textFiled release];
for (int i = 0; i < 2; i++) {
UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(100 + i * 100, 120, 60, 40);
btn.backgroundColor= [UIColor grayColor];
[self addSubview:btn];
if (i == 0) {
self.pswFindbackBtn = btn;
btn.tag = 500;
[btn setTitle:@"找回" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
}
else{
self.pswCancelBtn = btn;
btn.tag = 501;
[btn setTitle:@"取消" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
}
}
}
return self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
PasswordViewController.h
@implementation PasswordViewController
-(void)dealloc{
[_passWordView release];
[super dealloc];
}
//自定义视图大小
-(void)loadView{
_passWordView = [[[PasswordView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
self.view = _passWordView;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_passWordView.pswTextField.delegate = self;
//切换处理事件
_passWordView.pswCancelBtn.tag = 501;
[_passWordView.pswCancelBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
_passWordView.pswFindbackBtn.tag = 500;
[_passWordView.pswFindbackBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
@interface ContainerViewController ()
@implementation PasswordViewController
-(void)dealloc{
[_passWordView release];
[super dealloc];
}
//自定义视图大小
-(void)loadView{
_passWordView = [[[PasswordView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
self.view = _passWordView;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_passWordView.pswTextField.delegate = self;
//切换处理事件
_passWordView.pswCancelBtn.tag = 501;
[_passWordView.pswCancelBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
_passWordView.pswFindbackBtn.tag = 500;
[_passWordView.pswFindbackBtn addTarget:self.parentViewController action:@selector(changeThreeViewInterface:) forControlEvents:UIControlEventTouchUpInside];
}
//父视图ContainerViewController.h
@interface ContainerViewController ()
@property (nonatomic,retain)LoginViewController * loginV;
@property (nonatomic,retain)RegistViewController * registV;
@property (nonatomic,retain)PasswordViewController * passV;
@end
@implementation ContainerViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_loginV = [[LoginViewController alloc]init];
_registV = [[RegistViewController alloc]init];
_passV = [[PasswordViewController alloc]init];
[self addChildViewController:_passV];
[self addChildViewController:_registV];
[self addChildViewController:_loginV];
//添加登陆界面视图
[self.view addSubview:_loginV.view];
}
//切换方法
-(void)changeThreeViewInterface:(UIButton *)sender{
if ([sender.superview isEqual:_loginV.view]) {
if (sender.tag == 401) {
[_loginV.view removeFromSuperview];
[self.view addSubview:_registV.view];
}
else if (sender.tag == 402){
[_loginV.view removeFromSuperview];
[self.view addSubview:_passV.view];
}
}
else if ([sender.superview isEqual:_registV.view])
{
if (sender.tag == 300 || sender.tag == 301) {
[_registV.view removeFromSuperview];
[self.view addSubview:_loginV.view];
}
}
else if ([sender.superview isEqual:_passV.view])
{
if (sender.tag == 500 || sender.tag == 501) {
[_passV.view removeFromSuperview];
[self.view addSubview:_loginV.view];
}
}
}
@implementation AppDelegate
-(void)dealloc{
[_window release];
[super dealloc];
}
AppDelegate.m文件
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds] autorelease];
ContainerViewController * containerVC = [[ContainerViewController alloc] init];
self.window.rootViewController = containerVC;
[containerVC release];