2016-1-6第一个完整APP 私人通讯录的实现 2:增加提示用户的提示框,监听文本框
一:在登录时弹出提示用户的提示框:
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中连线:
2016-1-6第一个完整APP 私人通讯录的实现 2:增加提示用户的提示框,监听文本框的更多相关文章
- 2016-1-5第一个完整APP 私人通讯录的实现 1:登录界面及跳转的简单实现2
---恢复内容开始--- 实际效果如上 一:Segue的学习 1.什么是Segue: Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue) ...
- 2016-1-7第一个完整APP 私人通讯录的实现 6:在联系人界面增加删除联系人的功能
一:在viewDidLoad方法中代码添加一个UIBarButtonItem,并将其的类型设置成垃圾桶,代码如下: - (void)viewDidLoad { [super viewDidLoad]; ...
- 2016-1-7第一个完整APP 私人通讯录的实现 5:保存数据
一:登陆界面 1):用户点击登陆按钮并成功登陆后,根据此时的开关情况选择是否保存数据,代码如下: "]) { [self performSegueWithIdentifier:@" ...
- 2016-1-6第一个完整APP 私人通讯录的实现 4:编辑联系人
一:建立编辑联系人的controller,并使其拥有模型contact,且有协议.代码如下 #import <UIKit/UIKit.h> #import "contact.h& ...
- 2016-1-6第一个完整APP 私人通讯录的实现 3:添加联系人
一:创建模型对象:contact用于存放数据,也便于读取加载 #import <Foundation/Foundation.h> @interface contact : NSObject ...
- App单个页面的最佳文本框个数是多少个?
[1].不同大小的手机屏幕,对应的App每页最佳文本框个数,是不同的. [1.1]如果是iPhone4的屏幕尺寸,分辨率为640x960px的时候, 文本框个数最大值为:2个文本框 [计算公式] 第 ...
- iOS 实时监听app的网络连接状态
实际iOS开发中,在网络通信中我们大部分使用第三方(只谈短链),譬如 AFNetworking.ASIHttpRequest(这个停更了,想必现在没多少人用),swift的 Alamofire 等. ...
- spring-boot rabbitMq 完整项目搭建,包括创建、发送、监听
写在开始 rabbitMq 代码按照三部分介绍 第一部分 交换机和队列的创建 第二部分 消息发送 第三部分 消息监听 第一部分 1 建立queue 2 建立exchange 3 exchange绑定q ...
- iOS开发UI篇—实现一个私人通讯录小应用【转】
转一篇学习segue不错的教程 一.该部分主要完成内容 1.界面搭建 2.功能说明 (1).只有当账号和密码输入框都有值的时候,登录按钮才能交互 (2). ...
随机推荐
- Django开发博客- 模型
django的模型就是用于在数据库中存储的某种类型的对象.在我们的博客系统中, 发表的文章就是一个模型,需要存储在数据库中. 这里我们使用django默认的sqlite3库,对于我们的这个小系统而言已 ...
- robotframework笔记10
循环和条件 for循环 *** Settings *** Library BuiltIn Library Collections *** Test Cases *** TestCase01 My Ke ...
- ubuntu修改更新源为163
安装ubuntu后为了使下载及更新软件包更快,需要将自带的源更换为国内的源.以下以163为例: 1.首先备份下原始自带源: sudo cp sources.list /etc/apt/sources. ...
- javaWeb学习之运用myeclipse结合tomcat开发一些简单的jsp和service
servlet是什么? servlet是java服务器端编程.不同于我们之前写的一般的java应用程序,Servlet程序是运行在服务器上的,服务器有很多种.....现在只是用过 tomcat ...
- hdu---1024Max Sum Plus Plus(动态规划)
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- 自定义jQuery插件Step by Step
1.1.1 摘要 随着前端和后端技术的分离,各大互联网公司对于 Mobile First理念都是趋之若鹜的,为了解决网页在不同移动设备上的显示效果,其中一个解决方案就是Responsive Desig ...
- linq分页扩展(转)
原文地址:http://www.cnblogs.com/RainbowInTheSky/p/4590508.html public static List<T> ToPagedList&l ...
- SAP本地文件策略(导EXCEL选择拒绝后处理)
导出EXCEL意外选择了拒绝+记住选择,这样的话在本地电脑就导不出文件了,如下图: 解决办法有2个: 1,修改导出文件的本地策略 :Alt+F12 ->选项->安全性->安全设置-& ...
- 436. Find Right Interval ——本质:查找题目,因此二分!
Given a set of intervals, for each of the interval i, check if there exists an interval j whose star ...
- python logger
[loggers] keys=root [handlers] keys=consoleHandler [formatters] keys=simpleFormatter [logger_root] l ...