监听的实现
2015-07-13 13:24
399 查看
登陆的时候有用户名跟密码,只有两者全部输入时登陆按钮才会变亮才能点击登陆,否则为灰,不能登陆。这时候就用到了监听
-(void)viewDidLoad
{
//监听文本输入框的变化
//1.拿到通知中心
NSNotificationCenter * center = [NSNotificationCenter defaultCenter];
//2.注册监听 注意点:一定要写上通知的发布者 accountField
[center addObserver:self selector:@selector(textChange) name:UITextFIeldTextDidChangeNotification Object:seif.accountField];
[senter addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification Object:self.pwdField];
}
-(void) textChange
{
//1.判断是否同时输入了账号和密码
if (self.accountField.text.length && self.pwdField.text.length )
{
//2.让登陆按钮可用
self.loginBtn.enabled = YES;
}
else
{
self.loginBtn.enabled = NO;
}
//等同于上面的代码
self.loginBtn.enabled = (self.accountField.text.length > 0 &&self.pwdField.text.length > 0);
}
-(IBAction)remPwdchange:(id)sender
{
//1.判断是否记住密码
if (self.remPwdSwitch.isOn == NO)
{
//2.如果取消记住密码取消自动登录
[self.autoLoginSwitch setOn:ON animated:YES];
}
}
-(IBAction)autoLoginchange:(id)sender
{
//1.判断是否自动登录
if(self.autoLoginSwitch.isOn)
{
//2.如果自动登录就记住密码
[self.remPwdSwitch setOn:YES animated:YES];
}
}
跳转分为手动执行segue和自动跳转
-(IBAction)loginOnclick:(UIButton *)sender
{
//添加蒙版禁止用户操作,并且提示用户正在登陆 这里用到了第三方类库,已经封装好的下载直接拖进工程,加上头文件
[MBProgressHUD showMessage:@"正在拼命加载......"];
//登录时需要一段时间连接服务器判断,这里用时间代替
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) (1.5 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{
//1.判断账号是否正确
if (![self.accountField.text isEqualToString:@"su"]){
//登陆成功后移除蒙版
[MBProgressHUD hideHUD];
[MBProgressHUD showErroe:@"用户名不正确!"];
return;
}
if (![self.pwdField.text isEqualToString:@"123"]){
//登陆成功后移除蒙版
[MBProgressHUD hideHUD];
[MBProgressHUD showError:@"密码不正确!"];
return;
}
//登陆成功后移除蒙版
[MBProgressHUD hideHUD];
//如果正确,跳转到联系人界面(手动执行segue) login2contatcs是在视图segue添加的身份
[self performSegueWithIdentifier:@"login2contatcs" sender:nil];
});
}
//在segue跳转之前,会传入performSegueWithIdentifier方法创建好的segue对象
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
//1.拿到目标控制器
UIViewController * vc = segue.destinationViewController;
//2.设置目标控制器
//vc.navitionItem.title = [NSString stringWithFormat:@"%@ 的联系人列表",self.accountField.text];
//vc.title = vc.navigationItem.title;
vc.title = [NSString stringWitnFormat;@"%@ 的联系人列表",self.accountField.text];
}
-(void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
-(void)viewDidLoad
{
//监听文本输入框的变化
//1.拿到通知中心
NSNotificationCenter * center = [NSNotificationCenter defaultCenter];
//2.注册监听 注意点:一定要写上通知的发布者 accountField
[center addObserver:self selector:@selector(textChange) name:UITextFIeldTextDidChangeNotification Object:seif.accountField];
[senter addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification Object:self.pwdField];
}
-(void) textChange
{
//1.判断是否同时输入了账号和密码
if (self.accountField.text.length && self.pwdField.text.length )
{
//2.让登陆按钮可用
self.loginBtn.enabled = YES;
}
else
{
self.loginBtn.enabled = NO;
}
//等同于上面的代码
self.loginBtn.enabled = (self.accountField.text.length > 0 &&self.pwdField.text.length > 0);
}
-(IBAction)remPwdchange:(id)sender
{
//1.判断是否记住密码
if (self.remPwdSwitch.isOn == NO)
{
//2.如果取消记住密码取消自动登录
[self.autoLoginSwitch setOn:ON animated:YES];
}
}
-(IBAction)autoLoginchange:(id)sender
{
//1.判断是否自动登录
if(self.autoLoginSwitch.isOn)
{
//2.如果自动登录就记住密码
[self.remPwdSwitch setOn:YES animated:YES];
}
}
跳转分为手动执行segue和自动跳转
-(IBAction)loginOnclick:(UIButton *)sender
{
//添加蒙版禁止用户操作,并且提示用户正在登陆 这里用到了第三方类库,已经封装好的下载直接拖进工程,加上头文件
[MBProgressHUD showMessage:@"正在拼命加载......"];
//登录时需要一段时间连接服务器判断,这里用时间代替
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) (1.5 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{
//1.判断账号是否正确
if (![self.accountField.text isEqualToString:@"su"]){
//登陆成功后移除蒙版
[MBProgressHUD hideHUD];
[MBProgressHUD showErroe:@"用户名不正确!"];
return;
}
if (![self.pwdField.text isEqualToString:@"123"]){
//登陆成功后移除蒙版
[MBProgressHUD hideHUD];
[MBProgressHUD showError:@"密码不正确!"];
return;
}
//登陆成功后移除蒙版
[MBProgressHUD hideHUD];
//如果正确,跳转到联系人界面(手动执行segue) login2contatcs是在视图segue添加的身份
[self performSegueWithIdentifier:@"login2contatcs" sender:nil];
});
}
//在segue跳转之前,会传入performSegueWithIdentifier方法创建好的segue对象
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
//1.拿到目标控制器
UIViewController * vc = segue.destinationViewController;
//2.设置目标控制器
//vc.navitionItem.title = [NSString stringWithFormat:@"%@ 的联系人列表",self.accountField.text];
//vc.title = vc.navigationItem.title;
vc.title = [NSString stringWitnFormat;@"%@ 的联系人列表",self.accountField.text];
}
-(void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
相关文章推荐
- 利用JS实现简单的瀑布流效果
- 过滤器
- Android中各单位转换
- CodeForces 197B Limit
- leetCode 51.N-Queens (n皇后问题) 解题思路和方法
- UML建模之用例图
- Ubuntu14.04下的grub小调整
- EXCEL 合并两列的内容
- JSON
- ffmpeg AVPacket & AVFrame
- 【To be continue】用过见过的芯片
- Linux学习笔记(13)——shell scripts
- poj3250 Bad Hair Day
- ListView滑动删除 ,仿腾讯QQ
- leetCode 50.Pow(x, n) (x的n次方) 解题思路和方法
- Spring学习笔记——为何使用Spring
- UNITY3D MAC版本号破解
- tomcat server.xml各个端口的作用
- LNTCM nginx-1.5+tomcat+mysql-5.6.16+couchbase-server_3.0实现web集群
- 花生壳如何搭建邮件服务器