美文网首页
iOS 10:通讯录的创建

iOS 10:通讯录的创建

作者: d2cd99b0efce | 来源:发表于2016-04-04 13:44 被阅读104次

    导航条

    • 导航条的内容由栈顶控制器的navigationItem属性决定,而不是由父控制器决定。
    • 以后只要看到Item,一般都是苹果提供的模型,不能直接更改模型对应的控件,否则将会变得很乱。而模型提供了几个接口,可以让开发者自定义,定制自己的导航条。
    • UINavigationItem、UIBarButtonItem
    • MVC思想:不把控件展示给用户;更改模型数据,然后在控件上面展示。

    控制器view的生命周期

    • 附上图片


      生命周期方法.png
    • viewWillUnload、viewDidUnload。view销毁时,由系统自动去管理调用上面的方法。

    通讯录

    • 学习目的
      • 1.控制器的跳转
      • 2.控制器之间传值
      • 3.数据存储
    • 项目框架:导航控制器,始终贯穿着子控制器。
    • 界面个数:4个。
    • 判断UITextField中text是否有值的时候,不要这样写:text == "" 或者 text == nil,应该判断text.length == 0
    • 编写登录界面
      • 搭建界面
      • 实现业务逻辑
      • 实现登录功能

    segue

    • storyboard上每一根用来跳转的线,都是一个UIStoryboardSegue对象
    • 3个属性
      • identifier
      • sourceViewController
      • destinationViewController
    • 自动型segue,直接由控件 ——> 目标控制器,不需要做任何判断
    • 手动型segue,需要作出判断
      • 1.脱线:来源控制器 ——> 目标控制器
      • 2.设置标识符 identifier
      • 3.perform 方法执行segue

    第三方框架HUD

    • MBProcessHUD:类似于QQ登录切换时候中间过渡的界面
    • 使用方便,包含动画,提高了用户体验
    • 几个方法:
      • showError:
      • showMessage:
      • hideHUD:

    数据传递

    数据顺传
    • 数据传递,就好比买卖双方,一方需要,一方拥有,然后将商品传递
    • 跳转函数:performSegueWithIdentifer:
    • 跳转前的准备函数:prepareForSegue:。做一些数据传递的工作
    • 步骤:
      • 1.performSegueWithIdentifer:
      • 2.创建UIStoryboardSegue
      • 3.设置sourceViewController
      • 4.设置destinationViewController
      • 5.执行prepareForSegue:,做些准备工作,进行传值。
      • 6.[segue perform]
      • 7.判断segue的类型,如果是push,拿到导航控制器并push
    数据逆传
    • 不能按照数据顺传的方式,进行逆传,因为目标控制器拿不到segue ——> 造成了目标控制器拿不到来源控制器 ——> 不能像数据顺传的方式进行。
    • 需要在目标控制器中声明sourceViewController对象,然后在sourceViewController传值的prepareForSegue:中,将self 赋给目标控制器中的sourceViewController对象。
    • 这样在目标控制器中就拥有了sourceViewController对象,进行数据的传递。

    代码解耦

    • 上面的解决方法耦合性比较强,文件类之间相互包含,谁也离不开谁,可以使用代理方法去解耦。
    • 通过代理拿到接收方。接收方想要发送方的数据,监听发送方发生的变化,故需要设置发送方的代理为接收方。
    • 在接收方中,因为有segue对象,可以获取到发送方对象,然后设置发送方的代理为自身,并实现发送方代理的方法。

    tips

    • 进入编辑条目的时候,自动将鼠标定位至第一个要输入的UITextFied,并弹出键盘,提高用户体验。[textField becomeFirstField];
    • 项目分组:附上图
    双击屏幕中心可以满屏播放.png
    • 表格最好在数据没有的时候不需要分割线,有数据的时候cell有分割线,故需要手动将多余的分割线去掉。
    [self.tableView.tableFooterView = [[UIView alloc] init];
    

    相关文章

      网友评论

          本文标题:iOS 10:通讯录的创建

          本文链接:https://www.haomeiwen.com/subject/llnulttx.html