zoukankan      html  css  js  c++  java
  • iOS学习笔记5 xib和Storyboard

    写这篇的起因也是由于教材。在粗略地扫完Objective-C的教程后,就找了一本《Xcode 4 iOS Development Beginner’s Guide》来看。翻到第一个范例,对着范例开始照搬。做到“点击项目里的xib”文件的那一步时傻眼了。。。虾米?项目里没有xib文件?
     
    最新版的XCode里默认在新建一个iOS项目时,会勾选使用storyboard的选项。如果勾选了这个选项,在iOS项目里就不会包含.xib文件,而是一个storyboard文件。如果不勾选这个选项的话,还是会按照老方法创建xib文件。
     
    在storyboard出现之前,每个UIViewController都有一个对应的.xib文件。
     
    storyboard是在iOS5 SDK中引入的。
    一个storyboard通常是包含了N个screen的文件,表现出屏幕之间切换的“流”。如果要用理科生的术语来说,就是状态机吧。
     
    参考这篇:http://stackoverflow.com/questions/9083759/what-are-the-benefits-of-using-storyboards-instead-of-xib-files-in-ios-programmi ,Storyboard是:
    1. 包含所有Scene的容器(ViewController,Nav Controller,TabBar Controller等等)
    2. 管理Scene之间的所有连接和切换(术语被称为Segue['segweɪ],只需要从一个View Controller使用Ctrl+拖动到另一个View Controller,就可以创建一个新的切换)
    3. 管理Controller之间的通信
    4. 从nib文件那里无法获得的应用“流” (xib就是没有编译的nib。xib在编译时会变成nib,用于部署。在IB(Interface Builder)3引入。xib相比nib的优点是一个flat的文件而非一个二进制文件,可以用来版本控制。)
    5. 能减少文件总数
     
    关于storyboard有一篇挺详细的文章:
     
    里面提到Storyboard也有缺点:Storyboard编辑器不如IB强大。
    如果讨厌Interface Builder,喜欢自己编程实现所有UI的(这是在说我么?),不太会喜欢Storyboard。Storyboard比较适合那种喜欢写越少代码越好的。
     
    =============
    顺便说一下,如果要将一个xib文件和一个viewcontroller类文件关联的话,可以用如下步骤:
    1. 打开xib文件
    2. 点击PlaceHolder里的File's Owner(插一句:我用的是英文版,所以术语都是用英文。以后也不会专门翻译为中文)
    3. 点击右侧栏的第三个按钮,在"Identity Inspector"那里修改Custom Class的Class名
     
     
    (P.S. XCode用全图形化的关联方式来处理这样ViewController与xib,以及ViewController上的各种元素和property及函数的对应。根据之前浅尝则止的经验,游戏引擎Unity3D也是如此。老实说我个人还是更喜欢VS的处理方式。。。让人感觉比较实在吧。
    如果要查看那些图形化的操作做了些什么,可以右键点击xib文件,选择open as-》Source Code。可以看到其实背后还是用XML的方式来管理关联。不过一堆类似"1050106229","354080509"的reference字符串,显然根本不是用来给人类看的。。。)
  • 相关阅读:
    基础
    条件语句/变量和基本数据类型
    编程语言介绍
    asp.net中log4net使用方法
    web布到服务器上出错
    《转》IEnumerable、IEnumerator两个接口的认识
    异步ADO.NET
    Session的使用
    AJAX参数及各种HTTP状态值
    简易的抓取别人网站内容
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/3050257.html
Copyright © 2011-2022 走看看