本篇的內容其實大家 參照橘子的那本開發的書的話 上面講解的是更詳細的 一些實現.
我這邊唯一的區別就是 做了網絡數據的獲取 以及 驗證成功后 進行界面的跳轉..
第四篇了 本篇主講登陸模塊
首先先放效果圖
圖一
圖二
圖三
首先整體效果如圖一所示
2個uilabel
2個textfield
1個Button 按鈕
實現功能的話有以下幾點
1.其中輸入賬號后點擊 NEXT 跳到 密碼框.
2.點擊密碼輸入框 顯示DONE 點擊done的話 直接進行登陸驗證
3.點擊背景 將 鍵盤隱藏
4.點擊 登陸按鈕 進行登陸 驗證
首先先新建一個項目.如下圖,選擇單一視圖項目
然后 將對應的控件拖拽到對應的位置.並修改文字描述
排成圖一的樣子
控件的細節屬性我就不做介紹了,選擇對應的Textfield控件 分別在 Placeholder中輸入"請輸入賬號" 和"請輸入密碼" 該屬性就是 在文本輸入框沒有輸入內容時顯示的數據
完成后的效果如下
還有個兩個屬性分別是return key 和Secure
修改return key的話就是修改 鍵盤上的結束鍵.這個大家可以修改下看看就知道了
然后是Secure屬性.該屬性就是常見的密碼選項.選擇了后 輸入的內容就會顯示為****** 所以在密碼的Textfield 的屬性中需要選擇該屬性
.xib文件暫時就修改這么多了.
然后是.h文件 .還是一樣的 直接上代碼
#import <UIKit/UIKit.h> @interface ViewController : UIViewController { UIButton *loginButton; UITextField *pwdTextField; UITextField *uidTextField; } @property(nonatomic,retain) IBOutlet UIButton *loginButton; @property(nonatomic,retain) IBOutlet UITextField *uidTextField; @property(nonatomic,retain) IBOutlet UITextField *pwdTextField; -(IBAction)loginButtonPressed:(id)sender; -(IBAction)backgroundTap:(id)sender; -(IBAction)uidDidEndOnExit:(id)sender; -(void)initNav:(NSString *)pid; @end
這邊我分別定義了三個屬性和4個方法
loginButton pwdTextField uidTextField
這三個就分別對應着我們 的 登陸按鈕 . 密碼輸入框和賬號輸入框三個稍后會講怎么樣形成關聯
然后是4個方法分別用來處理 登陸按鈕點擊事件, 背景點擊事件 , 賬號輸入完成事件,以及登陸成功后界面切換事件 initNav
然后回到XIB文件
按住CTRL鍵同時左鍵點擊 然后移動鼠標,會出現一條藍色的線. 將藍色的線連接到 賬號輸入框上
便會出現剛剛在.H文件中的屬性.然后選擇與之相對應的 屬性 ,就完成了連接了(這邊是QQ截圖的 有點暗可能看步清楚.不過大家試下就知道了)
然后用同樣的方法 分別連接 密碼輸入框和按鈕. 就完成了連接
接下來我們選擇 賬號輸入框 在右邊屬性欄選擇事件
選擇Did End on Exit 點擊右邊的小圓圈 同樣的拉動話,會出現一條藍線,然后 拖拽到左邊的
然后選擇uidDidEndOnExit事件,
用同樣的方法 分別將密碼輸入 的Did End on Exit事件連接到 loginButtonPressed
登陸按鈕的Touch up inside 事件連接到loginButtonPressed
這樣的話 我們就將 對應的事件綁定到對應的控件上面了
最后還有一個點擊背景的事件這邊有點復雜
首先需要選擇 背景
然后找到屬性中的class 將其修改為UIControl 否則的話 他是沒有對應的點擊事件的
然后同樣的 選擇 tuochdown 事件 連接到
backgroundTap 事件上去
最后進入.m文件實現具體的 操作
好了直接上代碼
//點擊背景隱藏輸入框 -(IBAction)backgroundTap:(id)sender { [pwdTextField resignFirstResponder]; [uidTextField resignFirstResponder]; } -(IBAction)uidDidEndOnExit:(id)sender{ [pwdTextField becomeFirstResponder]; }
這個方法 分別是 移除對應的焦點,以及使某個控件成為焦點 ..就實現了 點擊背景 .隱藏鍵盤 以及點擊NEXT 跳轉到 密碼輸入框的功能
然后就是我們的重點了
longinbutton點擊事件
-(void)loginButtonPressed:(id)sender{
GetWebInfo *getwebinfo=[GetWebInfo alloc]; NSString *myparameters=[[NSString alloc] initWithString:[NSString stringWithFormat:@"&Method=Login&uid=%@&pwd=%@",uidTextField.text,pwdTextField.text]]; getwebinfo.parameters=myparameters; NSString *webReturnMessage=[getwebinfo dogetWebInfo]; NSData* jsonData=[webReturnMessage dataUsingEncoding:NSUTF8StringEncoding]; NSArray *keys = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil]; NSString *result=[keys valueForKey:@"Result"]; if([result isEqual:@"False"]) { UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"登陸失敗" message:@"密碼錯誤或者網絡連接失敗" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil]; [alert show]; } else{ [self initNav:[[keys valueForKey:@"Data"] valueForKey:@"ID"]]; }
}
首先是利用我們前兩篇建的GETWEBINFO 類來獲取數據
然后判斷是否登錄成功
如果登錄成功就調用initNav方法 並傳遞數據過去.否則就提示密碼輸入錯誤
最后要講的就是 initNav 方法了 .initNav方法主要就是實現登錄后的頁面跳轉..以前剛學的時候在這里糾結了好久 好了直接上代碼吧.
這邊我們首先要新建兩個 UIViewController 分別命名為A和B 吧
-(void)initSmallP:(NSString *)pid { AViewController *aViewController =[[AViewController alloc]initWithNibName:@"AViewController" bundle:nil]; BViewController *bViewController = [[BViewController alloc]initWithNibName:@"BViewController" bundle:nil] ; UINavigationController *aNavController=[[UINavigationController alloc]initWithRootViewController:aViewController];
UINavigationController *bNavController=[[UINavigationController alloc] initWithRootViewController:bViewController];
UITabBarController *tabController=[[UITabBarController alloc] init];
[tabController setViewControllers:[NSMutableArray arrayWithObjects:aNavController,bNavController,nil]];
AppDelegate * app = (AppDelegate*)[[UIApplication sharedApplication] delegate] ;
[app.window setRootViewController:tabController];
}
然后就完成了
代碼的意思呢.就是我們首先 實例化兩個 視圖,然后 創建兩個導航控制器.
最后添加到 一個tabbarcontroller里面
最后將程序的 rootviewcontroller 設置成tabbarcontroller 就完成了就完成了.
因為手頭沒有資源.所以就把以前做好的登陸后的效果圖貼在下面了
不過我們接下來也要實現以下的效果
接下來的內容主要是圍繞着UITableView 來講解的
大家如果熟練的掌握了 UITABLEVIEW的話 基本上就能完成一個簡單的基本項目了
PS:同樣的再次聲明,本文為本人隨意所寫(看着肯定感覺怪怪的亂七八糟的..非常不好意思對不起觀眾了.)
另外如果有錯請莫怪樓主誤人子弟..也請及時指出,好讓本人修改..