pro-- 通讯录-Login

1、用户数据在不同ViewController中的传递。比如:单击联系人列表中的cell,会跳到编辑页面或者保存编辑页面中的数据,将数据传给联系人页面。

2、如果将数据持久化(存数据,下次使用的时候还存在)

(1).只有当账号和密码输入框都有值的时候,登录按钮才能交互

(2).当取消勾选记住密码后,自动登录按钮也随之取消;当勾选了自动登录按钮时,记住密码按钮也一同勾选。

(3).点击登陆后,弹出蒙版,界面不可交互,程序能够简单判断账号和密码是否正确,如果不正确则给出相应的提示,如果正确则跳转到联系人列表界面



监听控件的话应该想到三种方法:addTarget监听点击事件、设置delegate监听常见事件、delegate还不行的话那就使用Notification

UITextField的delegate一般监听的是txt的编辑情况(键盘弹出前后)和文字改变是否可以改变(YES、NO指的是键盘是否可以输入,而不是文字改变)还有一个键盘上的return键。


UITextField会在文字改变的时候发出通知


(1).只有当账号和密码输入框都有值的时候,登录按钮才能交互

- (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 }

(2).当取消勾选记住密码后,自动登录按钮也随之取消;当勾选了自动登录按钮时,记住密码按钮也一同勾选。

- (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 }


(3).点击登陆后,弹出蒙版,界面不可交互,程序能够简单判断账号和密码是否正确,如果不正确则给出相应的提示,如果正确则跳转到联系人列表界面。

- (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      */
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值