文档章节

关于Segue

o
 obojo
发布于 2016/05/01 17:26
字数 410
阅读 9
收藏 0

Segue的属性

  • 每一个Segue对象,都有3个属性

  • 唯一标识

@property (nonatomic, readonly) NSString *identifier;

  • 来源控制器

@property (nonatomic, readonly) id sourceViewController;

  • 目标控制器

@property (nonatomic, readonly) id destinationViewController;



手动型Segue

  • 手动型的Segue需要设置一个标识  


  • 在恰当的时刻,使用perform方法执行对应的Segue

[self performSegueWithIdentifier:@"login2contacts" sender:nil];

// Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器来调用


  • 如果点击某个控件后,需要做一些判断,也就是说:满足一定条件后才跳转到下一个界面,建议使用手动型Segue”




performSegueWithIdentifier:sender:

  • 利用performSegueWithIdentifier:方法可以执行某个Segue,完成界面跳转


  • 接下来研究performSegueWithIdentifier:sender:方法的完整执行过程

[self performSegueWithIdentifier:@“login2contacts” sender:nil];

// 这个self是来源控制器

  1. 根据identifierstoryboard中找到对应的线,新建UIStoryboardSegue对象

  • 设置Segue对象的sourceViewController(来源控制器)

  • 新建并且设置Segue对象的destinationViewController(目标控制器)

  2   调用sourceViewController的下面方法,做一些跳转前的准备工作并且传入创建好的Segue对象

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;

// 这个sender是当初performSegueWithIdentifier:sender:中传入的sender

 

3. 调用Segue对象的- (void)perform;方法开始执行界面跳转操作

 (1)如果seguestylepush

  • 取得sourceViewController所在的UINavigationController

  • 调用UINavigationControllerpush方法将destinationViewController压入栈中,完成跳转

2如果seguestylemodal

  • 调用sourceViewControllerpresentViewController方法将destinationViewController展示出来                                                                


Sender参数的传递

1>[self performSegueWithIdentifier:@“login2contacts” sender:@“jack”];


2>- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;


1>sender:@“jack”    <==>    2>sender:(id)sender


© 著作权归作者所有

o
粉丝 1
博文 11
码字总数 2917
作品 0
广州
私信 提问
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记42 Modal Segue(模态过渡)

modal segue会占据整个屏幕,所以使用的使用一定要小心,提前做好返回的处理,使用modal segue的好处是在执行某项操作前必须,比如我们熟悉的alert和actionsheet。 比如手机中的联系人页面,...

cg1991130
2015/08/27
0
0
iOS中storyboard故事板使用Segue跳转界面、传值

iOS中storyboard故事板使用Segue跳转界面、传值 目录(?)[+] 摘要: 在iOS的开发过程中,不可避免的要设计界面,在android中有xml设置界面和直接使用java代码设置界面控件两种方式,在之前的i...

法斗斗
2016/01/04
1K
0
iOS开发捷径学习(三)

Storyboard的segue Storyboard中的segue功能强大,是页面跳转与交互的利器。现在就了解下吧。 初始化 segue的三个参数: identifier:唯一标识,用于标识自己 sourceViewController:来源控制...

智小融
2018/01/02
0
0
iOS开发之控制器之间传值

多个界面之间的跳转,免不了要进行数据传递,可以是顺向的,也可以是逆向的。android中activity之间数据传递是用startActivity(Intent)和startActivityForResult方式,逆向的时候在源activ...

shenhuniurou
2016/03/27
603
0
使用segue时如何实现login的判断

segue是storyboard中进行场景转换的核心。 实际操作的时候,和以前的代码思维方式有不同之处。比如说,login的实现。 (一)代码思维代码: - (void)configureLoginButton { UIButton *login...

rainckoo
2014/11/24
3.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

如何编写高质量的 JS 函数(1) -- 敲山震虎篇

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/7lCK9cHmunvYlbm7Xi7JxQ 作者:杨昆 一千个读者,有一千个哈姆雷特。 此系列文章将会从函数的执行机制、鲁棒性、函...

vivo互联网技术
37分钟前
5
0
学会这5个Excel技巧,让你拒绝加班

在网上,随处都可以看到Excel技巧,估计已看腻了吧?但下面5个Excel技巧会让你相见恨晚。关键的是它们个个还很实用 图一 技巧1:快速删除边框 有时当我们处理数据需要去掉边框,按Ctrl+Shif...

干货趣分享
今天
11
0
JS基础-该如何理解原型、原型链?

JS的原型、原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对这个...

OBKoro1
今天
9
0
高防CDN的出现是为了解决网站的哪些问题?

高防CDN是为了更好的服务网络而出现的,是通过高防DNS来实现的。高防CDN是通过智能化的系统判断来路,再反馈给用户,可以减轻用户使用过程的复杂程度。通过智能DNS解析,能让网站访问者连接到...

云漫网络Ruan
今天
15
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
3.3K
25

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部