iOS9 Storyboard unwind segue反回传递事件时机详细步骤

原创 2015年11月18日 10:32:53

当返回上一个界面且需要上一个界面做某事时,用unwind segue实现起来比delegate简单许多,甚至有时不适合用delegate来实现,那么我们就用unwind segue吧,而且像1->2->3这样的跳转,3视图可以通过unwind segue方便的返回到1、2任意界面。下面跟着我一起做吧。

一、创建如下视图

  我的1、2、3界面分别对应ViewController1、ViewController2、ViewController3

二、下面演示怎么从2返回到1,从3返回到1

  (1)打开需要返回到的界面ViewController1.m,加上下面方法,返回类型一定是IBAction,参数类型一定是UIStoryboardSegue,名称随便(这个方法一定要加,返回时调用的)

//其他界面返回到此界面调用的方法
- (IBAction)ViewController1UnwindSegue:(UIStoryboardSegue *)unwindSegue {
}

      (2)右键2界面上方的Exit(下图中画绿圈的)弹出菜单中可以看到刚才在1界面中加的那个方法的名称(下图中红色圈里),然后如下图一样连线,弹出菜单选择manual

(3)给2视图的unwind segue取一个名字叫from2to1如下图,等会会用到。

(4)同理从3视图返回到1视图,也是右键3界面上方的Exit弹出菜单中可以看到刚才在1界面中加的那个方法的名称,然后连线,弹出菜单选择manual,给3视图的unwind segue取一个名字叫from3to1 

 (5)我们给2视图和3视图中的“2退至1”、“3退至1”的按钮加上事件代码,这里就用到了给unwind segue取的名字(也就是identifier)

- (IBAction)back:(id)sender {
  //执行segue跳页的方法
    [self performSegueWithIdentifier:@"from2to1" sender:nil];
}
- (IBAction)back:(id)sender {
  //执行segue跳页的方法
  [self performSegueWithIdentifier:@"from3to1" sender:nil]; 
}

(6)再打开ViewController1.m,找到刚才加的那个方法,往里面加一些代码,可以根据unwindSegue.identifier判断从哪个界面退回到1的

//其他界面返回到此界面调用的方法
- (IBAction)ViewController1UnwindSegue:(UIStoryboardSegue *)unwindSegue {
    if ([unwindSegue.identifier isEqualToString:@"from2to1"]) {
        _lbShowMessage.text = @"从2退到1";
    } else if ([unwindSegue.identifier isEqualToString:@"from3to1"]) {
        _lbShowMessage.text = @"从3退到1";
    }
}

好了,运行一下,达到了我们要的效果。

三、附加知识

  返回按钮事件甚至可以一行代码都不用写,下面演示从3返回到2

  (1)打开需要返回到的界面ViewController2.m,加上下面方法,返回类型一定是IBAction,参数类型一定是UIStoryboardSegue,名称随便

//其他界面返回到此界面调用的方法
- (IBAction)ViewController2UnwindSegue:(UIStoryboardSegue *)unwindSegue {
    if ([unwindSegue.identifier isEqualToString:@"from3to2"]) {
        _lbShowMessage.text = @"从3退到2";
    }
}

      (2)右键3界面上方的Exit弹出菜单如下图,因为是返回到2,所以选择2界面的那个方法然后连线,这次是连到button,这样button事件就不用代码写了,给unwind segue取一个名字叫from3to2

(3)我现在不给“3退至2”这个按钮加事件代码,就可以点击它返回到2了,运行一下试试。

  结束:附上demo点击打开链接



版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS开发使用Unwind Segue进行返回

我们在之前的一篇博客中谈到如何使用dismiss的方法在iOS中返回,现在我们有一个更为方便的方法来实现界面跳转之后的返回操作。使用的是Unwind Segue.具体实现步骤如下: (1)分别在两个V...

适配 iOS 8 时遇到的问题两则:远程推送和 Unwind Segue

原文:http://imtx.me/archives/1910.html 昨天我在微博上吐槽:iOS 8 / Xcode 6 真是史上对开发者最糟糕的版本了。收到很多朋友表达同感。 ...

iOS中使用storyboard实现页面跳转,Segue详解及简单的数据传递

 由于最近才接触到IOS,苹果已经建议storyboard来搭建所有界面了,于是我也追随时尚,直接开始使用storyboard。(不料在涉及到页面跳转的时候,遇到的问题是:点击后没有任何反应)众...

IOS7 随记(一)之unwind segue

关于auto lay out,unwind segue,tiff,静态显示tableView内容,返回类型:instancetype and id 1.Auto Lay Out:     a....

iOS Storyboard unwind segues使用小结

使用storyboard开发的时候

IOS Modal Segue和Unwind Segue的使用Demo-附完整工程

原创Blog,转载请注明出处 本Demo的内容很简单,两个View,各含有textfield,第一个ViewController使用Modal Segue切换到第二个Segue时候,把Textfi...

iOS中storyboard故事板使用Segue跳转界面、传值

摘要: 在iOS的开发过程中,不可避免的要设计界面,在Android中有xml设置界面和直接使用Java代码设置界面控件两种方式,在之前的ios开发中也是类似的有xib文件设置界面及用代码直接设置控...

iOS 5 Storyboard 学习之 控制Segue来跳转用户登录Login

iOS 5 Storyboard 学习之 控制Segue来跳转用户登录Login Storyboard用起来实在是太爽了,所以尝试着把iOS 4时代的代码迁移过来,其他的都还好,今天...

iOS中storyboard故事板使用Segue跳转界面、传值

摘要: 在iOS的开发过程中,不可避免的要设计界面,在android中有xml设置界面和直接使用java代码设置界面控件两种方式,在之前的ios开发中也是类似的有xib文件设置界面及用代码直接设...

iOS 5 Storyboard 控制Segue来跳转用户登录Login

iOS 5 Storyboard 控制Segue来跳转用户登录Login Storyboard用起来实在是太爽了,所以尝试着把iOS 4时代的代码迁移过来,其他的都还好,今天遇到了login的问...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS9 Storyboard unwind segue反回传递事件时机详细步骤
举报原因:
原因补充:

(最多只允许输入30个字)