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
原创粉丝点击