pro-- 通讯录-Login
来源:互联网 发布:淘宝代销品牌怎么填 编辑:程序博客网 时间:2024/05/16 06:56
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)sender126 {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
- pro-- 通讯录-Login
- pro-- 通讯录2-Add
- pro-- 通讯录3-Edit
- Change Windows 7 Pro Default Login User
- pro-- 通讯录4--正向逆向数据传递总结
- login
- Login
- Login
- login
- Login
- login
- login
- login
- login
- login
- login
- Login
- login
- 从零开始——Android 4.0 实现recovery模式,出厂设置功能
- C# 面向对象技术
- gossip algorithms
- 迭代器模式学习案例
- MySQL的备份与还原
- pro-- 通讯录-Login
- 关于ORACLE数据库服务器SWAP该设置成多大的建议值
- java 经典实例
- linux——(2)redhat6.4用KVM搭建虚拟机
- python安装simplejson
- 第七章查找技术
- Fibonacci数列
- ANT安装、环境变量配置及验证
- 常见排序算法