登陆界面和界面跳转

2个uilabel

2个textfield 

1个Button 按钮

实现功能的话有以下几点

1.其中输入账号后点击 NEXT 跳到 密码框.

2.点击密码输入框 显示DONE 点击done的话 直接进行登陆验证

3.点击背景 将 键盘隐藏

4.点击 登陆按钮 进行登陆 验证 

首先先新建一个项目.如下图,选择单一视图项目

登陆界面和界面跳转_第1张图片

然后 将对应的控件拖拽到对应的位置.并修改文字描述

排成图一的样子

控件的细节属性我就不做介绍了,选择对应的Textfield控件 分别在 Placeholder中输入"请输入账号" 和"请输入密码" 该属性就是 在文本输入框没有输入内容时显示的数据

登陆界面和界面跳转_第2张图片

完成后的效果如下

登陆界面和界面跳转_第3张图片

还有个两个属性分别是return key 和Secure  

修改return key的话就是修改 键盘上的结束键.这个大家可以修改下看看就知道了

然后是Secure属性.该属性就是常见的密码选项.选择了后 输入的内容就会显示为****** 所以在密码的Textfield  的属性中需要选择该属性


然后是.h文件 .还是一样的 直接上代码

复制代码
#import 

@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键同时左键点击登陆界面和界面跳转_第4张图片 然后移动鼠标,会出现一条蓝色的线. 将蓝色的线连接到 账号输入框上登陆界面和界面跳转_第5张图片

便会出现刚刚在.H文件中的属性.然后选择与之相对应的 属性 ,就完成了连接了(这边是QQ截图的  有点暗可能看步清楚.不过大家试下就知道了)

然后用同样的方法 分别连接 密码输入框和按钮. 就完成了连接

 

接下来我们选择 账号输入框 在右边属性栏选择事件 登陆界面和界面跳转_第6张图片

选择Did End on Exit 点击右边的小圆圈 同样的拉动话,会出现一条蓝线,然后 拖拽到左边的 登陆界面和界面跳转_第7张图片

然后选择uidDidEndOnExit事件,

用同样的方法 分别将密码输入 的Did End on Exit事件连接到 loginButtonPressed

登陆按钮的Touch up inside 事件连接到loginButtonPressed

这样的话 我们就将 对应的事件绑定到对应的控件上面了 

最后还有一个点击背景的事件这边有点复杂

首先需要选择 背景

然后找到属性中的class 将其修改为UIControl  否则的话 他是没有对应的点击事件的

登陆界面和界面跳转_第8张图片

然后同样的 选择 tuochdown 事件 连接到 

backgroundTap 事件上去

 

登陆界面和界面跳转_第9张图片

最后进入.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];
 }
复制代码

你可能感兴趣的:(工作笔记)