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). ...
随机推荐
- Timer与TimerTask的真正原理&使用介绍
转载: Timer与TimerTask的真正原理&使用介绍 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来 ...
- JSON生成c#类代码小工具(转)
原文地址: http://www.cnblogs.com/tianqiq/archive/2015/03/02/4309791.html
- C语言实现进制转换
#include<stdio.h> int main() { char ku[16]={'0','1','2','3','4','5','6','7','8','9','A','B ...
- 生成guid
http://jingyan.baidu.com/article/84b4f565eebb9d60f6da3293.html
- Singleton、MultiThread、Lib——实现单实例无锁多线程安全API
前阵子写静态lib导出单实例多线程安全API时,出现了CRITICAL_SECTION初始化太晚的问题,之后查看了错误的资料,引导向了错误的理解,以至于今天凌晨看到另一份代码,也不多想的以为s ...
- linux copy
cp -ri 131115-6/* /web/www/attachment/ 把13这个文件夹下面所有的文件和文件夹复制到 /web/www/attachment cp -a a /web/ww ...
- fwite写入文件
用双引号(")定义字符串,PHP 懂得更多特殊字符的转义序列: 转移序列 说明 \n 换行 \r 回车 \t 水平制表符 \[/td> 反斜线 \$ 美元符号 \" 双引号 ...
- 使用ContentProContentProvider共享生词本数据
自定义ContentProvider需要在项目清单中注册: import android.content.ContentProvider;import android.content.ContentU ...
- 模拟QQ侧滑控件 实现三种界面切换效果(知识点:回调机制,解析网络json数据,fragment用法等)。
需要用到的lib包 :解析json gson包,从网络地址解析json数据成String字符串的异步网络解析工具AsyncHttpClient等 下载地址:点击下载 Xlistview 下拉上拉第三 ...
- linux 线程操作问题undefined reference to 'pthread_create'的解决办法(cmake)
问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a. 所以在使用pthread_create()创建线程时,需要链接该库. 1. 终端:问题解 ...