一、該部分主要完成內容
1.界面搭建 2.功能說明 (1).只有當賬號和密碼輸入框都有值的時候,登錄按鈕才能交互 (2).當取消勾選記住密碼後,自動登錄按鈕也隨之取消;當勾選了自動登錄按鈕時,記住密碼按鈕也一同勾選。 (3).點擊登陸後,彈出蒙版,界面不可交互,程序能夠簡單判斷賬號和密碼是否正確,如果不正確則給出相應的提示,如果正確則跳轉到聯系人列表界面。 二、實現過程和代碼 項目文件結構圖和界面搭建 實現代碼: YYloginViewController.m文件 復制代碼 1 // 2 // YYloginViewController.m 3 // 01-私人通訊錄(登錄頁面搭建) 4 // 5 // Created by apple on 14-6-6. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import "YYloginViewController.h" 10 #import "MBProgressHUD+NJ.h" 11 12 @interface YYloginViewController () 13 /** 14 * 賬戶輸入框 15 */ 16 @property (weak, nonatomic) IBOutlet UITextField *numberField; 17 /** 18 * 密碼輸入框 19 */ 20 @property (weak, nonatomic) IBOutlet UITextField *pwdField; 21 /** 22 * 登錄按鈕 23 */ 24 @property (weak, nonatomic) IBOutlet UIButton *loginBtn; 25 /** 26 * 記住密碼 27 */ 28 @property (weak, nonatomic) IBOutlet UISwitch *rempwdSwitch; 29 /** 30 * 自動登錄 31 */ 32 @property (weak, nonatomic) IBOutlet UISwitch *autoLoginSwitch; 33 /** 34 *記住密碼按鈕 35 */ 36 - (IBAction)rempwdChange:(id)sender; 37 /** 38 *自動登錄按鈕 39 */ 40 - (IBAction)autoLoginChange:(id)sender; 41 /** 42 *登錄按鈕的點擊事件 43 */ 44 - (IBAction)loginBtnOnclick:(id)sender; 45 46 @end 47 48 @implementation YYloginViewController 49 50 - (void)viewDidLoad 51 { 52 [super viewDidLoad]; 53 54 //監聽文本輸入框的改變 55 //1.獲得通知中心 56 NSNotificationCenter *center=[NSNotificationCenter defaultCenter]; 57 //2.注冊監聽 58 //注意:一定要寫上通知的發布者,否則如果該界面上有多個文本輸入框的話,都會響應 59 //UITextFieldTextDidChangeNotification監聽的事件:文本輸入框的內容發生改變 60 //self.numberField:監聽的對象 61 //textChange:當事件發生時調用的方法 62 [center addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.numberField]; 63 [center addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.pwdField]; 64 } 65 66 67 //監聽文本輸入框的狀態,當兩個文本輸入框中都有值的時候,讓登錄按鈕的狀態變為可交互的 68 -(void)textChange 69 { 70 // if (self.numberField.text.length>0&&self.pwdField.text.length>0) { 71 // self.loginBtn.enabled=YES; 72 // }else 73 // //這裡主要針對數據回刪 74 // self.loginBtn.enabled=NO; 75 76 //可以改寫為下面的寫法 77 self.loginBtn.enabled=(self.numberField.text.length>0&&self.pwdField.text.length>0); 78 } 79 80 - (IBAction)rempwdChange:(id)sender { 81 //1.判斷是否記住密碼 82 //2.如果取消記住密碼,則同時取消自動登錄 83 if (self.rempwdSwitch.isOn==NO) { 84 // self.autoLoginSwitch.on=NO; 85 //設置動畫效果 86 [self.autoLoginSwitch setOn:NO animated:YES]; 87 } 88 } 89 90 - (IBAction)autoLoginChange:(id)sender { 91 //1.判斷是否自動登錄 92 //2.如果自動登錄,就記住密碼 93 if (self.autoLoginSwitch.isOn==YES) { 94 [self.rempwdSwitch setOn:YES animated:YES]; 95 } 96 } 97 - (IBAction)loginBtnOnclick:(id)sender { 98 //點擊登錄按鈕,提示加載信息,並對賬號和密碼進行判斷,如果正確就跳轉到新的界面,如果不正確那就顯示提示信息 99 //這裡使用了第三方框架 100 //在點擊登錄按鈕後,添加一層蒙版以禁止用戶操作,並且提示用戶正在登錄 101 [MBProgressHUD showMessage:@"正在努力加載....."]; 102 //讓後面的操作在3秒鐘之後再執行 103 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 104 if (![self.numberField.text isEqualToString:@"YY"]) { 105 //登錄操作後,取出蒙版 106 [MBProgressHUD hideHUD]; 107 //輸入賬號不正確,則提示錯誤信息 108 [MBProgressHUD showError:@"輸入的賬號不存在!"]; 109 return; 110 } 111 if (![self.pwdField.text isEqualToString:@"123"]) { 112 //輸入密碼不正確,則提示錯誤信息 113 [MBProgressHUD hideHUD]; 114 [MBProgressHUD showError:@"輸入的密碼不正確!"]; 115 return; 116 } 117 //如果密碼和賬號都正確的話,跳轉到新的界面 118 //移除蒙版 119 [MBProgressHUD hideHUD]; 120 //跳轉到新的界面,使用segue(需要判斷-手動) 121 [self performSegueWithIdentifier:@"login2contatc" sender:@"文頂頂"]; 122 }); 123 } 124 //在segue跳轉之前會調用這個方法,會傳入performSegueWithIdentifier方法創建好的segue對象 125 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 126 { 127 NSLog(@"%@",sender); 128 //數據的正向傳遞 129 //1.拿到目標控制器 130 UIViewController *vc=segue.destinationViewController; 131 //2.設置目標控制器的標題 132 vc.title=[NSString stringWithFormat:@"%@的聯系人列表",self.numberField.text]; 133 134 /* 135 // 執行segue的perform內部實現 136 UIViewController *sourceVc = segue.sourceViewController; 137 UINavigationController *nav = sourceVc.navigationController; 138 [nav pushViewController:segue.destinationViewController animated:YES]; 139 */ 140 } 141 @end