03-UI进阶(3)

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,自动完成界面跳转
![](http://upload-images.jianshu.io/upload_images/1477016-100940e4d473a21d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
 - 手动型:需要通过写代码手动执行Segue,才能完成界面跳转
![](http://upload-images.jianshu.io/upload_images/1477016-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);
    }```

你可能感兴趣的:(03-UI进阶(3))