一:在登录时弹出提示用户的提示框:
1.使用第三方框架。
2.在登陆按钮点击事件中增加如下代码:
- (IBAction)loginBtnClicked { NSString *acount = self.acountField.text; NSString *password = self.passwordField.text; // 跳出正在登陆的提示框 [MBProgressHUD showMessage:@"正在登陆"]; // 模拟加载中 QAQ 感觉好喜感啊 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // 隐藏正在登陆的提示框 [MBProgressHUD hideHUD]; // 判断用户账目密码是否输入正确,跳出提示并跳转界面 if ([acount isEqualToString:@"zhangsan"]&&[password isEqualToString:@"123"]) { [self performSegueWithIdentifier:@"ContactsViewController" sender:nil]; [MBProgressHUD showSuccess:@"登陆成功"]; }else{ [MBProgressHUD showError:@"账号密码错误"]; } } ); }
3.在- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法中给目标控制器专递参数
代码如下
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { #warning 先获得Segue的目标控制器,但是设置的是新的一个contactVc,为什么Segue目标控制器的属性也会改变? id destcontroller = segue.destinationViewController; if ([destcontroller isKindOfClass:[contactTableViewController class]]) { contactTableViewController *contactVc = destcontroller; contactVc.name = self.acountField.text; } }
这段代码有个不明白的地方,自己打了#waring,暂时想不通,以后来解决吧~
4.实际效果如下:
二:监听文本登陆框
1.使用通知中心,代码如下:
- (void)viewDidLoad { [super viewDidLoad]; self.loginBtn.enabled = NO; // 通知中心监听文本改变的情况, // 建立通知中心,设置观察者订阅通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.acountField]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.passwordField]; }
//实现接受到文本改变的通知后 controller要做的事情 - (void)textChange { // 只有在账户和密码在文本登陆框中都有长度时,登陆按钮才可用 self.loginBtn.enabled = (self.acountField.text.length >= 5 && self.passwordField.text.length >= 3); }
实际效果:
2.也可以直接给textField添加事件,代码如下:
[self.acountField addTarget:self action:@selector(textChange) forControlEvents:UIControlEventEditingChanged ]; [self.passwordField addTarget:self action:@selector(textChange) forControlEvents:UIControlEventEditingChanged ];
也可以直接在mainstroyboard中连线:
时间: 2024-11-25 10:39:44