UIStoryboard
UIStoryboard
目录
- 概述
- Storyboard的创建
- Storyboard中的页面跳转
文件内跳转
文件外跳转
- Segues
- 不同类型的视图控制器在UIStoryboard上的实现
概述
IOS编程对视图控制器处理常常分为xib和Storyboard,xib是比较古老的视图控制器管理形式,Storyboard则是比较新的,对于两者的异同,笔者暂时还不是很有体会,只是觉得Storyboard的话,可以让开发人员很快熟悉界面的跳转流程,但是缺点就是当如果Storyboard很大的时候,会发现可能只是改一小部分的东西,Xcode编译的时间依旧会很久,可能Xcode又要把整个Storyboard给编译一遍。
优点
通过使用storyboard,你可以有一个全局的概念
和xib的对比
有很多局限性,storyboard并不如Interface builder那么功能强大,有很多Interface Builder可以做的地方,storyboard并不能做
Storyboard的创建
直接新建一个Storyboard文件
Storyboard中的页面跳转
(1)Storyboard文件内UIViewController之间的跳转
连线实现跳转
直接连线,从一个UIButton到一个UIViewController
获得跳转到的目标视图控制器的类以作初始化,在原视图控制器上重写以下方法
-(void)prepareForSegue:(UIStoryboard *)segue sender:(id)sender{
UIViewController *secondVC = segue.destinationViewController;
}
代码实现跳转+设置UIViewController之间的Segue
[self performSegueWithIdentifier:@"segue_identifier" sender:self];
注:segue_identifier为原视图控制器连线到跳转到的目标视图控制器之间的segue的Identifier,在检查器面板可进行设置
使用技巧:通过设置和判断segue.identifier来区分跳转到的视图
(2)Storyboard文件之间的跳转
实现代码
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboard_name" bundle:nil];
UIViewController *nextVC = [storyboard instantiateViewControllerWithIdentifier:@"viewcontroller_identifier"];
注:viewcontroller_identifier为Storyboard里面中的视图控制器的Storyboard ID;storyboard_name为Storyboard除了文件后缀之后的文件名
Segues
Model
Push
自定义Segue——Custom
自己编写动画,详见《IOS 5 by tutorials》
不同类型的视图控制器在UIStoryboard上的实现
UIViewController
UITabBarController
UINavigationController
UITableViewController
UITableViewCell
UIStoryboard的更多相关文章
- UIStoryboard类介绍(如何从Storyboard中加载View Controller)
如何从Storyboard中加载View Controller? 1. 首先了解下UIStoryboard类: @class UIViewController; @interface UIStoryb ...
- IOS中用UIStoryBoard类初始化/跳转控制器
1.空工程中通过创建storyboard文件加载页面 //获取Main.storyboardUIStoryboard *mainStory = [UIStoryboard storyboardWi ...
- iOS - UIStoryboard
前言 NS_CLASS_AVAILABLE_IOS(5_0) @interface UIStoryboard : NSObject @available(iOS 5.0, *) public clas ...
- UIStoryboard跳转界面
/**1.创建Storyboard,加载Storyboard的名字,这里是自己创建的Storyboard的名字*/ UIStoryboard *storyboard = [UIStoryboard s ...
- iOS Programming UIStoryboard 故事板
iOS Programming UIStoryboard In this chapter, you will use a storyboard instead. Storyboards are a f ...
- 使用 UIStoryBoard 语法糖
最后更新: 2018-09-06 当你用 UIStoryBoard (以下简称 'SB') 做iOS开发时候,总是避免不了设置 StoryBoard ID 的问题, StoryBoard ID 是一个 ...
- UIStoryBoard 中修改控件borderColor
storyBoard中直接修改UI控件的边框颜色,可以避免先关联再从控制器中修改属性等繁琐操作 因为layer.borderColor隶属于CALayer对象,且CGColor无法直接在sb中直接使用 ...
- iOS中UIKit——UIStoryboard中基本知识点
一.输出口 1.一旦在故事板中对某控件或者视图定义了输出口,不需要再在文件中对它们进行初始化.否则,会产生错误.
- UIStoryboard小提示
- (id)instantiateInitialViewController - (id)instantiateViewControllerWithIdentifier:(NSString *)ide ...
随机推荐
- Ubuntu/CentOS使用BIND配置DNS服务器
------ubuntu server 12---------- 1.安装bind9 sudo apt-get -y install bind9 bind9utils 2.配置 /etc/bind/ ...
- fork()函数详解
linux中fork()函数详解(原创!!实例讲解) (转载) 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程 ...
- 使用Eclipse的几个必须掌握的快捷方式(能力工场小马哥收集)
“工若善其事,必先利其器”,感谢Eclipse,她 使我们阅读一个大工程的代码更加容易,在阅读的过程中,我发现掌握几个Eclipse的快捷键会使阅读体验更加流畅,写出来与诸君分享,欢迎补充. 1. C ...
- delphi 判断调试状态
DebugHook 该变量在调试状态下值为1,运行模式为0,例如,我们可以使用如下的代码来简单控制: if DebugHook=0 then
- 解决Ubuntu系统的每次开机重启后,resolv.conf清空的问题
问题情况描述如下: 普及知识: /etc/resolv.conf ,其实是一个Link .它其实指向的是 /run/resolvconf/resolv.conf. Ubuntu 有一个 reso ...
- 转】MyEclipse使用总结——MyEclipse中配置WebLogic12c服务器
原博文出自于:http://www.cnblogs.com/xdp-gacl/p/4142495.html 感谢! MyEclipse中配置WebLogic12c服务器的步骤如下: [Window]→ ...
- WebRtc VoiceEngine代码解析
WebRtc中VoiceEngine可以完成大部分的VOIP相关人物,包括采集.自动增益.噪声消除.回声抑制.编解码.RTP传输.下边我们通过代码来解析Voe中处理流程: 创建VoiceEngine和 ...
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (0/1-Trie树)
Vasiliy's Multiset 题目链接: http://codeforces.com/contest/706/problem/D Description Author has gone out ...
- HDU 1564 Play a game (找规律博弈)
Play a game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- error日志
2016/06/15 微信调核心时通用意外险 2016-06-15 11:44:23,771>>INFO >> com.isoftstone.core.service.comm ...