0612-私人通讯录数据存储
1. 关于Navigationcontroller(01-设置导航条的内容)
- 导航栏的内容只有栈顶控制器决定
- iOS7之后默认会把导航条上面的按钮渲染成蓝色,通过下面这行代码告诉苹果不要渲染图片
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
- 导航条上面的控件位置不能由开发者决定,开发者只能控制尺寸;
[btn sizeToFit]
这个方法可以让控件尺寸快速由图片决定,故这个方法只能设置尺寸不能设置位置
2. sb搭建两个vc之间的跳转(02-控制器view的生命周期)
(注:往导航栏上拖的按钮必须是UIBarbuttoniterm类型)control按住按钮托向另一个VC,放手选择show或push,推荐选择push,因为选show的话不能直接在sb上修改下级VC的title
3. VC的view生命周期中- (void)viewWillLayoutSubviews和- (void)viewDidLayoutSubviews默认会被调用多次,所以尽量少在这种方法里写东西(02-控制器view的生命周期)
4. 注意监听TextField内容变化的两个方法的区别(04-通讯录(登录界面业务逻辑))
// 这个方法才是正在监听文本框内容的改变
[_accountField addTarget:self action:@selector(textChange) forControlEvents:UIControlEventEditingChanged];```
//这个方法是用来监听用户的输入,且不能取代上面那个方法,因为这个方法不能及时获取文本框的内容
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"%@",_accountField.text);
return YES;
}```
5. 关于Segue(05-通讯录(登录功能))
- Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue)
- 3个属性
//唯一标识
@property(nonatomic,readonly)NSString *identifier;
//来源控制器
@property(nonatomic,readonly)id sourceViewController;
//目标控制器
@property(nonatomic,readonly)id destinationViewController;```
- Segue可以分为2大类型
- 自动型:点击某个控件后(比如按钮),自动执行Segue,自动完成界面跳转
![](https://img.haomeiwen.com/i1477016/100940e4d473a21d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 手动型:需要通过写代码手动执行Segue,才能完成界面跳转
![](https://img.haomeiwen.com/i1477016/c55e7c5ed16bc8ae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 这个是跳转方法```[self performSegueWithIdentifier:@“login2contacts”sender:nil];```,在跳转之前下面这个方法可以执行一些你想要的操作,注意segue及其一系列操作只能在sourceViewController里进行
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UIViewController *vc = segue.destinationViewController;
vc.title = [NSString stringWithFormat:@"%@的联系人列表", _accountField.text];
NSLog(@"%@--%@",segue.sourceViewController,segue.destinationViewController);
}```
网友评论