Xcode4.2 改变之二 Storyboard

掌握Xcode Storyboard:iOS UI设计的可视化之旅 Storyboard是Xcode中一个用于设计和管理应用程序用户界面的可视化工具。通过Storyboard,开发者可以直观地看到应用程序的流程,并且能够以图形化的方式设计界面。可视化布局:通过拖放组件,直观地设计界面。管理视图控制器:方便地管理应用程序中的视图控制器。支持自动布局:自动适应不同屏幕尺寸和方向。集成动画和过渡:轻松实现界面之间的动画和过渡效果。通过本文的介绍和示例代码,读者应该对如何在Xcode中使用Storyboard进行UI设计有了更深入的理解。 阅读详情

3. 新增特性——Storyboard

Storyboard是Xcode4.2新增的又一个特性,它将原有工程中的所有xib文件集成在一起,用拖曳的方式建立ViewController相关之间的跳转关系,使得整个程序的UI跳转逻辑清楚明了。简单地说,storyboard引入了2个概念:

scene:一个场景,由一个viewController和相关的xib表示。

segue:(英文原意为继续、持续)。在这是用于连接scenes,其有多种类型,包括:Push,Modal,Popover and more。

当然segue也负责传递数据和返回数据。

整个程序的界面转换就是在各个scene之间切换。界面跳转关系,比如按哪个键跳到哪个界面,是由segue来描述。segue也可以带数据,以便做数据传递。(也因此被说是抄袭Adobe的Flash)。

要点:必须有一个viewController是作为storyboard的初始界面的,及需要勾选上Initial Scene项。如下图:

 

StoryBoard相对于以前的NIB/XIB的优势:

  • 能够减少很多与View相关的代码量。
  • 能够使View和Controller进一步解耦。
  • 能够优化程序的“页面流”,使程序的结构更清楚。

      通常,NIB是和ViewController相关联的,很多时候ViewController都有其对应的NIB文件。该文件的作用就是描述用户界面以及初始化对象和界面元素对象。虽然这些都可以在代码中来实现,但为了高效编写程序代码,xCode给我们提供了IB来绘制界面。而StoryBoard的引入,则是进一步加强了这方面的功能,之前的NIB文件没有办法描述ViewController之间的跳转过渡,只能通过代码中调用类似-presentModalViewController:animated:或-pushViewController:animated:这个两个方法来实现。现在,在StoryBoard中引入了Segue这一概念,由Segue定义从一个ViewController到另一个ViewController的过渡。只需要像之前连接界面对象和Action Method那样将ViewController之间用合适的Segue连接起来即可,无需任何手写代码。即使是自定义Segue,也只需编写Segue的实现,而无需编写调用的代码,一切都由StoryBoard帮我们调用。 

 要准确用好StoryBoard机制,必须严格遵守MVC原则。要让View和Controller充分解耦;并且不同的Controller之间也是充分解耦。所以AppDelegate就应该是处理UIApplication的回调,而不应该负责用户界面的处理。更不应该直接把AppDelegate当ViewController用,乃至直接在UIWindow上绘制界面。虽然,这有可能简单明了,毕竟UIWindow也是UIView的子类。但我们还是要有优良的习惯:由ViewController来负责处理View才是正确之道。从近期苹果针对xCode的项目模板的变化上看也反映这种优化趋势:

      在Xcode 4时,程序项目模板(如View-Based Application)开始鼓励使用UIWindow的rootViewController属性来指定第一屏的ViewController,以保证AppDelegate只专注于它应该做的事情。如今Xcode4.2引入StoryBoard后,AppDelegate就直接不管ViewController的事情了,第一屏使用的ViewController(即rootViewController)可以在StoryBoard中设置。

如何从NIB/XIB迁移到StoryBoard,有些什么改变?

  • ViewController不需要NIB/XIB文件,连接Outlet和Action的操作都可以在StoryBoard上完成。
  • 孤立View(独立于ViewController的View)是不能出现在StoryBoard里,所有View必须通过ViewController来管理。(这样,StoryBoard更像是Controller对象的容器,而不是View对象的容器,以前NIB/XIB倒显得可以视为View对象的容器)
  • ViewController之间的过渡代码不需要了,用StoryBoard的Segue直接可视化连接不同的ViewController。
  • UIWindow对象的作用被进一步淡化,在StoryBoard图上没有体现出AppDelegate对象——因为它本来就不应该来处理界面View的。
  • 代码编写要严格遵守MVC设计模式,才能用好StoryBoard来高效开发程序。

实践中的问题:
      XCode项目如果包含StoryBoard创建的,就无法在iOS 4.x的模拟器和iOS 4.x的真机上调试,运行,不报错,但是得到的结果只有黑屏。这应该是storyboard只有iOS5支持的原因吧。

掌握Xcode的魔术:自定义Storyboard的创建与管理 在iOS应用开发中,Storyboard提供了一种直观的方式来设计和管理用户界面。通过Storyboard,开发者可以轻松地构建应用的视图控制器,同时定义它们之间的转换。然而,随着应用的复杂性增加,管理多个Storyboard文件可能会变得复杂。本文将详细解释如何在Xcode中创建和管理自定义Storyboard,并通过代码示例展示如何高效地使用它们。Storyboard是Xcode中一个强大的工具,它允许开发者以可视化的方式设计应用的用户界面和导航流程。每个Storyboard文件(以。 阅读详情

相关推荐

Xcode 4.3 StoryBoard 基础 事件和跳转处理

刚学iOS 就直接用 xcode 4.3  头瞬间大了  不过学了 之后发现比之前的xib 方便好多也满顺手  只是网络上的教程不多 。 下面是页面进行跳转的方法 页面上跳转 一般有两种   一种是 用view 当事件源。 比如上图 按住control 点击button 直接拉到 下个界面  当点击 button  就直接跳转 连接的界面。 还有种 是controller 连接 c

li6185377的专栏 2万+

更换storyboard步骤

1. 创建新的storyboard. 在storyboard里拖入view controller ,将 is initial View Controller勾选. 2.将项目的interface改为我们自己创建的xx.storyboard,这样程序启动后,不会加载Main.storyboard,而是加载我们自己创建的storyboard.

zhanghuiye123321的专栏 313

xcode 4.2.1 ~~~ 4.5.1

xcode 4.2.1 ~~~ 4.5.1 官方下载地址

Xcode下熟练storyboard、xib等界面开发(新手)

其中,有一个Main.storyboard这个是我们的第一个SB文件,我们所有视图的UI界面都在这里设置, 其中AppDelegate里面有程序的入口用于初始化,而AppDelegate是在不断循环的程序和我们的代码之间进行通讯,AppDelegate对象是作为Application对象的委托属性还声明了一个NSwindow*window 的XIB文件的IBOutlet输出变量 这就让AppDelegate可以直接对window做一些操作 比如说windows的背景颜色等。如:Testsb之类的...

m0_73232447的博客 6852

Apple Xcode 4.2 下载地址(非官方)

Apple Xcode 4.2 下载地址(非官方)

告别Root!用Termux+ADB在Android上玩转自动化(保姆级教程)

本文详细介绍了如何在非Root环境下使用Termux和ADB实现Android自动化操作,无需Root权限即可运行自动化脚本。通过Termux搭建Linux终端环境,结合ADB无线调试和Python脚本,实现点击、滑动、截图等自动化功能,适用于定时任务、自动签到等场景。

weixin_42548888的博客 539

Xcode4.3开发第一个IOS应用实例

关于如何创建第一个 iOS 应用 本篇“第一个 iOS 应用”教程将向你介绍 iOS 应用开发中的“三个T”: Tools(工具)如何利用 Xcode 创建和管理工程。 Technologies(技术)如何创建能够响应用户输入的应用。 Techniques(技巧)如何充分利用 iOS 应用开发的基础设计模式。 当你完成本教程的所有步骤之后,你的应用看起来会和下边图

嘀咕的榔头 2万+

数据驱动AI落地:从业务价值到技术实践的全链路方法论

以数据驱动为核心,围绕 AI 落地全链路展开:先建全域数据体系(拉通内外部数据、治理数据质量),再将 AI 嵌入研发、制造、营销、服务等业务链路解决痛点,搭配混合算力架构保障技术落地,辅以 “小场景试错 - 复制” 战略、跨部门团队等方法论。结合美的集团数字化转型实践,最终实现 AI 对业务降本、增效、增收的价值,为企业 AI 转型提供可复用路径。

专注数据驱动领域原创分享。拆解从数据采集、建模分析到业务价值落地的全链路实践,聊决策逻辑、技术工具与场景案例。用通俗语言讲透数据如何赋能业务,与同路人共探数据价值。 1892

XCode 4.2 新功能 - Storyboard

XCode 4.2 新功能 - Storyboard 最近開始比較有空在玩 XCode 4.2(iOS5 Beta3),赫然發現它多了個 Storyboard 的東東。Storyboard 這個東西一般來說是在做創意發想的時候,用來將自己的想的一些故事情節畫成像是連環漫畫一樣,想不到 Apple 把它用在這裡,真是佩服...好吧,不廢話,先來說說這個 Storyboard 帶來什麼改變?在這...

weixin_30822451的博客 70

用Python玩转共现分析:从NLTK到热力图可视化(附完整代码)

本文详细介绍了如何使用Python进行文本共现分析,从NLTK基础文本处理到构建共现矩阵,并实现热力图可视化。通过完整的代码示例,帮助数据分析师和开发者掌握这一揭示词语间关联网络的实用NLP技术,快速从文本中提取语义关系和主题结构。

weixin_29313817的博客 349

别再到处找模板了!我用这套软著申请材料(含用户手册+源代码模板)两个月搞定

本文提供了一套高效的软著申请材料模板,包括用户手册和源代码模板,帮助开发者两个月内快速完成申请。通过实战指南和常见误区解析,详细介绍了材料准备的规范与技巧,确保格式合规性,大幅提升审核通过率。

weixin_29268637的博客 548

(转载)StoryBoard学习(2):优点

  (转载)StoryBoard学习(2):优点     XCode 4.2 新功能 - Storyboard 最近開始比較有空在玩 XCode 4.2(iOS5 Beta3),赫然發現它多了個 Storyboard 的東東。Storyboard 這個東西一般來說是在做創意發想的時候,用來將自己的想的一些故事情節畫成像是連環漫畫一樣,想不到 Apple 把它用在這裡,真是佩服....

stephen830 93

全志 camera: 4路AHD摄像头转MIPI

TP2815 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 MIPI 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 9094

基础辅助教程:XCode 4.2的Storyboard

基础辅助教程:XCode 4.2的Storyboard 今天我准备做一个短暂的辅助教程关于怎么用Xcode 4.2里边的Storyboard.当storyboard出现的时候相比于以前IB的工作方式有些让人茫然不解, 我也感觉苹果在这个技术上真的打了一个曲线球.  实际上当你开始使用它的时候并不是完全那么糟糕,这个教程将会展现用一个按钮怎么连接两个视图控制器, 在这个过程中不会有一行代

1741

【WorkBuddy专栏27】WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

AI人人懂 2645

Redhawk:toggle rate从哪来?

redhwak中toggle rate的相关设置

m0_61544122的博客 8118

关于xcode4.2的storyboard

学了很久Objective-c还是觉得自己对XCode不是很了解,现在自己研究了一下,终于学会了一些最基本的东西。如下(欢迎高手批评指正): Apple的xcode升级为4.2以后就取消了xid这个文件,但是给出了类似xib的文件storyboard。那么这个文件怎么用呢,为了成功调用到我们的storyboard: 1、我们新建一个空的工程(Empty Application)。 2、新建后

万里独行 1089

delphi备份和还原MySql数据库.zip

delphi备份和还原MySql数据库.zip源码,可以自动备份或还原MysqL数据库,在该源码中可以修改你的数据库名和密码及路径,就可为你所用。祝下载使用者编程成功!

Xcode 4.3.2下的storyboard view window 的区别

最新Xcode 4.3.2 下使用Storyboard和ARC开发iPh http://blog.sina.com.cn/s/blog_68707a3f01015a4r.html 基础辅助教程:XCode 4.2的Storyboard http://hi.baidu.com/%D3%D0%D6%F7%B5%C4%B8%C9%C1%B8%B1%F0%C5%F6/blog/item/89

阿海的博客 1202

EMR电子病历管理系统

Java web技术开发的电子病历管理系统

1985-2021年全国各省分产业就业人数数据

无缺失数据说明见链接:https://blog.csdn.net/m0_71334485/article/details/130452252

Xcode 新项目删除 storyboard 文件

根据 storyboard 的优劣考虑,我决定采用纯代码的方式进行 UI 界面的开发。我需要删除新建项目中的 storyboard 文件,以著此文记录。

Veggie的博客 1万+

2.0mm单排双排排针排母直插直角90度弯角排座AD封装库(ALTIUM 3D PCB封装库).PcbLib

2.0mm单排双排排针排母直插直角90度弯角排座AD封装库(ALTIUM 3D PCB封装库):Component Count : 90Component Name-----------------------------------------------HDR2.0-LI-2PHDR2.0-LI-2x2PHDR2.0-LI-2X3PHDR2.0-LI-2X4PHDR2.0-LI-2x5PHDR2.0-LI-2X6PHDR2.0-LI-2X7PHDR2.0-LI-2X8PHDR2.0-LI-2X9PHDR2.0-LI-2X10PHDR2.0-LI-2X11PHDR2.0-LI-2X12PHDR2.0-LI-2X13PHDR2.0-LI-2X14PHDR2.0-LI-2X15PHDR2.0-LI-2X16PHDR2.0-LI-3PHDR2.0-LI-4PHDR2.0-LI-5PHDR2.0-LI-6PHDR2.0-LI-7PHDR2.0-LI-8PHDR2.0-LI-9PHDR2.0-LI-10PHDR2.0-LI-11PHDR2.0-LI-12PHDR2.0-LI-13PHDR2.0-LI-14PHDR2.0-LI-15PHDR2.0-LI-16PHDR2.0-M-LI-2PHDR2.0-M-LI-2x2PHDR2.0-M-LI-2x3PHDR2.0-M-LI-2x4PHDR2.0-M-LI-2x5PHDR2.0-M-LI-2x6PHDR2.0-M-LI-2x7PHDR2.0-M-LI-2x8PHDR2.0-M-LI-2x9PHDR2.0-M-LI-2x10PHDR2.0-M-LI-2x11PHDR2.0-M-LI-2x12PHDR2.0-M-LI-2x13PHDR2.0-M-LI-2x14PHDR2.0-M-LI-2x15PHDR2.0-M-LI-2x16PHDR2.0-M-LI-3PHDR2.0-M-LI-4PHDR2.0-M-LI-5PHDR2.0-M-LI-6PHDR2.0-M-LI-7PHDR2.0-M-LI-8PHDR2.0-M-LI-9PHDR2.0-M-LI-10PHDR2.0-M-LI-11PHDR2.0-M-LI-12PHDR2.0-M-LI-13PHDR2.0-M-LI-14PHDR2.0-M-LI-15PHDR2.0-M-LI-16PHDR2.0-WI-2PHDR2.0-WI-2x2PHDR2.0-WI-2x3PHDR2.0-WI-2x4PHDR2.0-WI-2x5PHDR2.0-WI-2x6PHDR2.0-WI-2x7PHDR2.0-WI-2x8PHDR2.0-WI-2x9PHDR2.0-WI-2x10PHDR2.0-WI-2x11PHDR2.0-WI-2x12PHDR2.0-WI-2x13PHDR2.0-WI-2x14PHDR2.0-WI-2x15PHDR2.0-WI-2x16PHDR2.0-WI-3PHDR2.0-WI-4PHDR2.0-WI-5PHDR2.0-WI-6PHDR2.0-WI-7PHDR2.0-WI-8PHDR2.0-WI-9PHDR2.0-WI-10PHDR2.0-WI-11PHDR2.0-WI-12PHDR2.0-WI-13PHDR2.0-WI-14PHDR2.0-WI-15PHDR2.0-WI-16P

XCode5下创建的StoryBoard无法在XCode4.6下打开

XCode5下创建的StoryBoard无法在XCode4.6下打开 可以如下设置 我们选择使用XCode4.6打开,这样我们就可以使用XCode4.6进行编辑了

AppleEngineer 1049

iOS开发教程:Xcode4.2-Storyboard的简单使用

http://www.lanou3g.com/blog/tag/Storyboard 作者:蓝鸥科技 发布于:2013-2-25 12:34 Monday 分类:iOS高级-UI 我们经常会用到.xib文件,在其中我们可以进行界面的设计。不过如果想切换视图,我们就得自己写很多代码。自从苹果推出了Storyboard,我们可以在一个编辑区域设计多个视图,并通过可视化的

u011248345的专栏 1034

Xcode4.2 storyboard HelloWorld

注:转自http://blog.csdn.net/zhoujiajun88/article/details/7075095 这篇文章主要参考苹果的iOS开发文档,童鞋可以自己移步http://developer.apple.com查看更详细的说明,这里只是简单的说明在Xcode4.2下怎么建立一个iOS 5.0的Storyboard的HelloWorld工程。

1950的专栏 1045

Xcode6中如何切换storyboard为xib

在Xcode6中,当创建一个带View的iPhone项目时,默认必须使用Storyboards,不再支持切换xib的checkbox。本文讲解如何手动切换到使用xib来布局。 1,把Main.storyboard从项目中移除   2,添加xib文件到项目中。添加一个新文件,选择View,命名和*ViewContorller相同。   3,把Main storyboard对应的项从plis

tanhailong198801的专栏 583
上一篇: Xcode4.2 不同之一 模板改变
下一篇: Xcode4.2 改变之三 可视化手势
ch_soft
博客等级 码龄17年 828粉丝 166原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值