iOS segue几种界面跳转笔记 (更新中)

为了简单演示,我直接创建一个新的工程jumpToViewControllerMultipleWay

应用场景
当我们在界面A点击UIView(UIButton按钮、UIImageView图片、UITextView、甚至是UITableView中的Item等等),需要跳转到另外一个界面B或C时。

Segue说明(类型Android的Intent,又不一样)

segue:用于storyboard中不同视图控制器间转场,即从一个视图控制器转场到另一个视图控制器。Segue的起点必须是一个view或者定义某些操作的对象,如:UIBarButtonItem;可以单独在scene之间使用,也可以配合NavigationController的导航栈一起使用 segue

Action Segue 类型

ActionSequeTypes.png

Action Sequie

  • show:在NavigationController存在的情况下,segue连接的Controller会被压入导航栈。新压入的视图控制器有返回按钮,单击可以返回
  • show Detail:这种类型是不压栈的,不管有没有NavigationController,它只是replace取代了当前的视图,不提供返回按钮。在detail area中展现内容。例如:即使app同时显示master和detail视图,那么内容将被压入detail区域如果app当前仅显示Master或者detail视图,那么内容将替换当前视图控制器堆栈中的顶层视图。
  • Present Modally:这种类型是不压栈的,以模态的方式显示,类似于弹出的警告窗口、登陆框一类的视图;用户无法与上一个视图交互,除非关闭当前视图。
  • Present As Popover:这种类型不压栈,类似于下拉菜单;在iPad中,目标视图以浮动窗样式呈现,点击目标视图以外区域,目标视图消失;在iPhone中,默认目标视图以模态覆盖整个屏幕。
  • Custom:可用于自定义
  • Push(从Xcode开始已经不建议使用)
  • modal(从Xcode开始已经不建议使用)

官方开发资料:View Controller Programming Guide for iOS---Using Segues
官方功能描述:xcode help


Action Seque -show(Storyboard中segue拖拉)

方式1-控件拖拉到目标ViewController

在Storyboard(国内常称为故事版)右键UIButton直接拖拉即可,拖拉完就可以直接运行

actionSequeShow.gif
方式2-原ViewController(界面A)拖拉到目标ViewController(界面B)
  • 步骤1:拖拉
    试图树中拖拉


    actionSequeShow_view2view.gif

或 在Storyboard上拖拉

actionSequeShow_V2V.gif

拖拉后直接运行,你会发现根本就没有办法跳转。因为你还没有进行后续的操作,这个时候我们就要用到Identifier

  • 步骤2:为segue设置Identifier
    当我们拉好线后,点击segue(那条线),并为seque设置Identifier(我设置的是seeGirl)这个id后面需要用到
settingSequeIdentifier.png
  • 步骤3:为按钮设置点击事件
drawSeeGirlTapped.png

顺带展示一下绑定事件界面Connection说明:

  • Outlet:以定义变量的方式将控件链接到代码,该变量代表控件;
  • Aciton:以定义方法的方式将控件链接到代码,该方法在用户与控件进行交互时运行;
    -Outlet Collection:可以将界面上一组相同的控件连接到同一个数组中
    顺带展示一下绑定事件界面Type说明:
  • Strong:强引用
  • Weak:弱引用
drawSeeGirlTapped_connections.png
drawSeeGirlTapped_types.png
  • 步骤4:添加逻辑代码
    自动生成的方法中添加如下代码
        performSegue(withIdentifier: "seeGirl", sender: nil)

seeGirlTappedCoding.png
方式1、方式2的运行效果一致
actionSequeShow_operationEffect.gif

为界面B添加返回按钮,并绑定返回事件

上面的工作已经实现了界面A到界面B的跳转,可惜界面B无法返回到界面A,这个的界面体验感觉总是很别扭。那么下面的工作就是为界面B添加返回事件。

步骤1:在父界面ViewController中添加closeShowGirl方法(你可以试试没有这是步骤会是什么情况)
    @IBAction func closeShowGirl(segue:UIStoryboardSegue){
        print("关闭")
    }

步骤2:为返回按钮与closeShowGirl方法进行绑定

如果没有在父界面添加实现代码,那么你将无法做这个绑定

bindQuitButton2Func.gif
运行看一下效果

运行你会发现已经可以实现界面B返回到界面A,并成功在xcode日志窗口中打印处“关闭”

绑定界面B与UIViewController类绑定说明(这步不是必须的,你可以跳过)

上面我们所做的工作并没有为界面B编写任何代码,这是因为系统在我们没有绑定的情况下才用系统内置的UIViewController。
那么我们应该如何绑定呢?其实只要2个步骤就可以完成

  • 步骤一:在项目的资源管理位置右键菜单/new/file/Cocoa Touch 类文件-ShowGirlViewController.swift(继承至UIViewController)

  • 步骤2:界面B与ShowGirlViewController类绑定

bindView2ShowGirlViewController.png

分享是一种美德,牵手是一种生活方式。

最后感谢简书提供的分享平台,你觉得有用可以收藏方便以后查阅。

个人分享内容分类

今日头条号--牵手生活 :android 破解与逆向(暂未接触ios逆向)

csdn--牵手生活 :android 入门级介绍、部分工具类分享。

简书--牵手生活 :侧重打造-ios乐园

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容