Github地址:PersonalContacts
私人通讯录
写在前面
本 Demo 简单演示了一些小控件的应用。
- 比如导航栏的设置;
- 界面全部是代码写的,没有用stroyboard。
- UITextField,UILabel,UIButton等小控件的精确控制;
- 页面之间的数据传输;
- 数据的本地化存储;
- UITableView 的添加删除Cell
- 在系统提供样式的Cell中代码添加自定义View
- 利用第三方控件模拟网络请求等待,就是转菊花
简单演示
运行环境
运行环境为 Xcode 7.3,iOS 9.3
工程中用了cocoapods,工程入口为根目录下:PersonalContacts02.xcworkspace
流水账
下面只是简单记录了一些代码生成的过程和思想:
AppDelegate.m
1 |
|
HomeViewController.m
1 | - (void)viewDidLoad { |
添加属性:
1 | @interface HomeViewController () |
记得将button赋值
1 | [self.view addSubview:logButton]; |
1 | /* |
将添加事件响应拿出来放到单独的方法中:
1 |
|
完成两个方法
1 | - (void)remeberPasswordChange |
ContactsViewController.m
1 | /** |
HomeViewController.m
使用第三方库 SVProgressHUD
然后重新写登录按钮的响应方法
1 | - (void)pushToContactsViewController |
更改一下开关的关闭打开,设置动画
1 | - (void)remeberPasswordChange |
AddViewController.m
1 |
|
修改 ContactsViewController.m 中的方法,将下一个视图的左上角按钮设置为返回
1 | - (void)pushToAddViewController |
为了已进入添加界面,就弹出键盘,在 AddViewController.m 中
1 | - (void)viewWillAppear:(BOOL)animated { |
添加代理,回传值
1 |
|
AddViewController.m 中
1 |
|
ContactsViewController.m
添加代理
1 | @interface ContactsViewController () <UIActionSheetDelegate, AddViewControllerDelegate> |
设置代理
1 | - (void)pushToAddViewController |
1 |
|
EditViewController.h
1 |
|
EditViewController.m
1 |
|
ContactsViewController.m
1 |
|
实现数据存储 Contact.h
记得必须遵守 NSCoding 协议
1 |
|
然后实现下面两个方法
Contact.m
1 |
|
数据存放的地方
ContactsViewController.m
1 | // 数据存放路径 |
1 | - (void)viewDidLoad { |
1 |
|
1 |
|
语言调整为中文,虽然把模拟器设置成中文,可还要把工程中添加中文配置才可以
更换一下删除操作后刷新表格的方式,不需要全部刷新,只要删掉一行就行
1 | - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { |