Storyboard中segue使用总结

简介    
    场景转换在应用中是非常常见的,让用户在一个视图控制器内操作,能够实例化并显示另一个视图控制器,需要创建一个在两者之间相连的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值。

时间: 2024-12-15 02:36:48

Storyboard中segue使用总结的相关文章

StoryBoard中segue的使用

StoryBoard中segue的使用 点击button跳转到下一个页面, 条件是textField里有值时才能实现跳转功能, 否则不跳转, 这个功能的实现就需要用到segue 首先在storyboard中viewController中拖入一个imageView textField UIButton, 在ViewController中拉入一条segue选择modal到下一个页面, 关联方法到ViewController中 在segue中添加标识    输入内容不为空得时候, 进行页面间跳转  

storyboard中Unwind segue使用

Unwind segue能被用作导航控制器中的回退,可以有push,modal,和popover三种效果.(效果和直接使用导航控制器的效果相同,不过更加强大). 假设情况A是导航控制器的根控制器,而跟控制器之下有另外的一个B控制器,B之下还有一个C控制器,层次还可以更加的深,从最深层次的控制器回到A 使用Unwind segue可以直接到达,并且只需要在A中创建一个方法类似下面的代码: ? 1 2 3 - (IBAction)unwindToThisViewController:(UIStory

[iOS基础控件 - 6.11.4] storyboard 的 Segue

A.概念 storyboard中的跳转事件连线,都是一个UIStoryboardSegue对象(Segue) 来源控制器 触发控制器 目标控制器 跳转到的控制器 Segue的属性: 每一个Segue对象,都有3个属性唯一标识@property (nonatomic, readonly) NSString *identifier;来源控制器@property (nonatomic, readonly) id sourceViewController;目标控制器 @property (nonatom

//四舍五入//得到倒序//比较字符串//拦截时间,实现超时锁屏//判断是否越狱//配置PodFile//Storyboard中跳转操作//处理不可逆的push界面操作

//处理不可逆的push界面操作 VerifyRealNameViewController *verifyRealNameCtrl = [VerifyRealNameViewController viewControllerWithStoryBoard:@"Registe" identify:@"VerifyRealNameViewController"]; UIViewController *topCtrl = [self.navigationController

用代码创建并实例化在storyboard中声明的ViewController

我们的项目最早是基于storyboard开发的,所以一开始所有的ViewController都通过storyboard创建,并通过segue连接跳转 但是今天其中一个controller的view,我们需要特别美化一下,用storyboard做很麻烦.所以就把它从storyboard里拿出来了.问题是,原来的segue就不能用了,需要用编码的方式来实现涉及到此controller的跳转 跳转进此controller的代码很常规,之前做模态页面开发的时候已经试过了,所以很简单就写出来: [objc

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

对比 Android 的 Intent 与 iOS StoryBoard 的 Segue - Intent 如果也能增加个prepareForSegue回调就好了 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再

xib或storyBoard中往scrollView添加子控件

如何在xib或者storyBoard中的scrollView加拖拽子控件,并且能让它可以正常滚动,那么下面就为大家简单演示: 运行环境为:Xcode 7.3 备注:图片较大,如果看不清看可以右键鼠标在新标签中打开图片就很清晰了 1.如图我们往storyBoard拖拽一个scrollView并设置为上下左右约束距离父控件为0 2.当我们往scrollView中添加子控件时候却发现报错了 因为scrollView比较特殊,需要设置contentSize,这个错误和平常我们遇到的错误不一样,因为在这两

iOS中 xib自定义View在storyboard中的使用

1,创建UIView 的SubClass 命名为MyView 2, new一个名为MyView的xib p1 3,配置xib的属性 p2 4,为View 添加背景色,添加一个按钮并定制按钮约束,这里我添加的约束为垂直居中,Button与View等宽,Button左边起点位置为0. p3 5,设置xib中的File’s owner = MyView, 拖拽view 到关联的代码中命名为contentView p4 6, 在storyboard 中对ViewController 添加一个View,之

iOS开发手记 - iOS9.3 UINavigationController添加后不显示storyboard中viewcontroller里的控件的解决方法

我原先是这么做的,通常也是这么做 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. ViewController *firstVC = [[ViewController alloc] init]; UIN