简介    
    场景转换在应用中是非常常见的,让用户在一个视图控制器内操作,能够实例化并显示另一个视图控制器,需要创建一个在两者之间相连的segue(转 场)。比如导航控制器里面,某个场景中的操作可以触发转场去加载并显示另一个场景,转场可以将下一个控制器自动推入导航栈。

说明
   

    Xcode6之前Storyboard里面的几种segue区别及视图切换:push、modal、popover、replace和custom可参考:http://www.2cto.com/kf/201210/161737.html
    
Xcode6中segue取消原push和modal(deprecated),可以查看官方文档说明:https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/chapters/StoryboardSegue.html
    新增方法show和present Modally一般可以满足我们的使用需求

Show

根据当前屏幕中的内容,在master area或者detail area中展示内容。

例如:如果app当前同时显示master和detail视图,内容将会压入detail区域。

如果app当前仅显示master或者detail视图,内容则压入当前视图控制器堆栈中的顶层视图。

Show Detail

在detail area中展现内容。

例如:即使app同时显示master和detail视图,那么内容将被压入detail区域

如果app当前仅显示Master或者detail视图,那么内容将替换当前视图控制器堆栈中的顶层视图。

Present Modally

使用模态展示内容。属性面板中提供presentation style (UIModalPresentationStyle)与 transition style (UIModalTransitionStyle)两种选项

Present as Popover

在某个现有视图中的锚点处使用弹出框展示内容。这个选项可指定显示在弹出框视图一边上的箭头可用方向,同时也是指定锚点视图的一个选项。

(翻译来自网友)

Storyboard创建segue
   
按住鼠标右键,将鼠标指针从一个单元样本拖到新场景上,鼠标悬 停时将看到整个场景会高亮显示,表示可以连接了。释放鼠标右键并选择弹出的浮动菜单中Selection Segue位置的show选项。创建segue意味着,只要用户轻点单元样本,另一端相连的视图控制器便会分配内存空间并准备切换。

动态执行segue
     在Storyboard中建立的segue,是直接跳转的,不方便添加额外的条件判断,如果要做登陆之类的功能,必须动态执行segue操作
    
首先在Storyboard中建立segue,不从按钮等控件建立,而是从ViewController建立,必须指定Identifier,建立完毕后,跳转执行

    [self performSegueWithIdentifier:@"segueXXX" sender:self];

利用Identifier指定要执行的segue

利用segue传递数据
    比如想把数据NSString *aData从AController传到BController,则在BController中创建一个NSString recvData的property,然后在AController添加方法

  1. - (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
  2. UIViewController *destination = segue.destinationViewController;
  3. if ([destination respondsToSelector:@selector(setdata:)]) {
  4. [destination setValue:aData forKey:@"recvData"];
  5. }
  6. }

在BController的viewDidLoad方法中,可直接查看_recvData值。

转载于:https://www.cnblogs.com/quwujin/p/4802000.html

Storyboard中segue使用总结相关推荐

  1. Swift - 使用addSubview()方法将StoryBoard中的视图加载进来

    使用 Storyboard 我们可以很方便地搭建好各种复杂的页面,同时通过 segue 连接可以轻松实现页面的跳转. 但除了segue,我们还可以使用纯代码的方式实现Storyboard界面的跳转. ...

  2. (转)如何从storyBoard中加载其中一个controller

    在有storyboard之前,也就是iOS5之前,多视图之间的连接是通过创建新的xib文件,然后在代码中先alloc一个该类的实例,然后用 - (id)initWithNibName:(NSStrin ...

  3. Storyboard 之segue用法总结

    Storyboard的好玩之处在于它可以帮我们省略了很多要手动写的代码,其中segue的功劳功不可没,现总结一下学习心得,若有错误之处,望指正. 创建工程,选择 Single View Applica ...

  4. IOS中Segue的使用

    IOS Storyboard中使用Segue传值 (2013-06-19 02:27:59) 转载▼ 标签: ios segue 传值 分类: iOS开发 需求描述: 故事板中,View1与View2 ...

  5. 对比 Android 的 Intent 与 iOS StoryBoard 的 Segue - Intent 如果也能增加个prepareForSegue回调就好了

    对比 Android 的 Intent 与 iOS StoryBoard 的 Segue - Intent 如果也能增加个prepareForSegue回调就好了 太阳火神的美丽人生 (http:// ...

  6. 如何在Storyboard中使用Scroll view

    本文章环境Xcode 11 在开始使用scroll view之前(storyboard/XIB),我们必须搞清楚两个东西 在Storybord/Xib中使用Scroll view,会有哪些结构 为什么 ...

  7. ***Xcode Interface Builder或Storyboard中可建立那两种连接?

    在Xcode Interface Builder或Storyboard中,可建立到输出口(IBOutlet)和操作(方法,IBAction)的连接. IBOutlet are for output C ...

  8. iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解

    一.概要:前一篇初步的描述了size class的概念,那么实际中如何使用呢,下面两个问题是我们一定会遇到的: 1.Xcode6中增加了size class,在storyboard中如何使用? 2.a ...

  9. iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解

    一.概要:前一篇初步的描述了size class的概念,那么实际中如何使用呢,下面两个问题是我们一定会遇到的: 1.Xcode6中增加了size class,在storyboard中如何使用? 2.a ...

最新文章

  1. 输出stage.displayState等于null原因
  2. 重庆二师计算机科学与技术,应用型本科院校计算机科学与技术专业一流课程建设思考──以重庆第二师范学院为例...
  3. 强化学习(四)—— Actor-Critic
  4. linux6.3支持gcc版本,Linux编程中GCC对C++标准支持和如何选择GCC版本使用
  5. Java Keystore教程
  6. windows无法连接到某个wifi_windows无法连接到无线网络怎么办【解决方法】
  7. oracle不能访问管理页面,Oracle Grid Control CONSOLE无法打开9i数据库的管理维护页面...
  8. C#算法设计查找篇之03-插值查找
  9. sqlserver临时表操作
  10. Win8.1/Win10在某些程序输入中文变成问号的解决方法
  11. 凸优化第六章逼近与拟合 6.3正则化逼近
  12. 机器学习实战-决策树预测隐形眼镜类型
  13. 樱花树下的欢笑---2012春西安交大樱花节
  14. 网页完整的长截图怎么截?3步搞定!
  15. python清空画布_Python3 tkinter基础 Canvas delete 删除画布中的所有图形
  16. windows屏幕亮度调节失灵的解决方法
  17. 制作一个简单HTML西安旅游网页(HTML+CSS)
  18. 医生,我的眼球掉出来了,快帮我种回去!
  19. DB_RECOVERY_FILE_DEST,LOG_ARCHIVE_DEST,LOG_ARCHIVE_DEST_N
  20. 今天,就让坏得很的糟老头子来告诉你顺序表的基操,零基础也可get!

热门文章

  1. Android:Kotlin语法基础
  2. export TERM=xterm导致终端reset命令失效
  3. sbt安装、配置、運行(scala sbt helloworld)
  4. intellij关联本地的maven的repository
  5. 数据结构:二分查找python实现
  6. IDEA下的使用git
  7. Android--使用VideoView播放视频
  8. 适时选择getDeclaredxxx和getxxx
  9. Linux CentOS6编译安装Python2.7
  10. app端微信支付(二) - 生成预付单