Segue的属性
•每一个Segue对象,都有3个属性
Ø唯一标识

@property (nonatomic, readonly) NSString*identifier;

Ø来源控制器

@property (nonatomic, readonly) idsourceViewController;

Ø目标控制器

@property (nonatomic, readonly) iddestinationViewController;

——————————————————————————————————————————————————————————————————————————

Segue的类型

•根据Segue的执行(跳转)时刻,Segue可以分为2大类型
Ø自动型:点击某个控件后(比如按钮),自动执行Segue,自动完成界面跳转
eg:

•点击“登录”按钮后,就会自动跳转到右边的控制器
•如果点击某个控件后,不需要做任何判断,一定要跳转到下一个界面,建议使用“自动型Segue”
Ø手动型:需要通过写代码手动执行Segue,才能完成界面跳转
•手动型的Segue需要设置一个标识
•在恰当的时刻,使用perform方法执行对应的Segue

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

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

•如果点击某个控件后,需要做一些判断,也就是说:满足一定条件后才跳转到下一个界面,建议使用“手动型Segue”
•利用performSegueWithIdentifier:方法可以执行某个Segue,完成界面跳转
•——————————————————————————————————————————————————————————————————————————
•接下来研究performSegueWithIdentifier:sender:方法的完整执行过程

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

// 这个self是来源控制器

1.根据identifier去storyboard中找到对应的线,新建UIStoryboardSegue对象
Ø设置Segue对象的sourceViewController(来源控制器)

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

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

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

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

3.调用Segue对象的- (void)perform;方法开始执行界面跳转操作
Ø取得sourceViewController所在的UINavigationController
Ø调用UINavigationController的push方法将destinationViewController压入栈中,完成跳转
——————————————————————————————————————————————————————————————————————————
控制器的数据传递
•控制器之间的数据传递主要有2种情况:顺传和逆传
Ø顺传
n控制器的跳转方向: A -> C
n数据的传递方向    : A ->C
n数据的传递方式    :  在A的prepareForSegue:sender:方法中根据segue参数取得destinationViewController,也就是控制器C,直接给控制器C传递数据

(要在C的viewDidLoad方法中取得数据,来赋值给界面上的UI控件)

Ø逆传
n控制器的跳转方向: A-> C
n数据的传递方向    : C -> A
n数据的传递方式    :  让A成为C的代理, 在C中调用A的代理方法,通过代理方法的参数传递数据给A

iOS——Segue的使用相关推荐

  1. iOS: Segue Delegate

    http://iosdevelopersnote.blogspot.com/2011/10/storyboard-segue-delegate.html

  2. IOS中Segue的使用

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

  3. 安全修复之Web——HTTP X-XSS-Protection缺失

    安全修复之Web--HTTP X-XSS-Protection缺失 背景 日常我们开发时,会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列, ...

  4. iOS开发使用Unwind Segue进行返回

    我们在之前的一篇博客中谈到怎样使用dismissViewControllerAnimation()的方法在iOS中返回,如今我们有一个更为方便的方法来实现界面跳转之后的返回操作.使用的是Unwind ...

  5. IOS基础之segue使用,

    IOS基础之segue使用, segue是接线,接入的意思.控制器与控制器之间的连线. sourceViewControl来源控制器 destinationViewController 目标控制器,以 ...

  6. iOS基础——UI控件之UIAlertController、UINavigationController、Segue、SVProgressHUD

    iOS基础--UI控件之UIAlertController.UINavigationController.Segue 一.UIAlertController 1.普通对话框 -(void)update ...

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

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

  8. 【iOS】iOS之Button segue弹出popOver消除(dismiss)问题

    如图.由于程序须要,点击Button Ctrl+Dragging加入了一个UITableViewController,当然其余的Controller也能够,这样我们在方法 -(void)prepare ...

  9. 【Xamarin 开发 IOS --IOS 页面导航概念Segue】

    Storyboard里面的几种Segue区别及视图的切换:push,modal,popover,replace和custom 一.视图切换类型介绍 在storyboard中,segue有几种不同的类型 ...

  10. iOS:using Segue in Popover

    今晚被一个问题搞半天,如果你使用segue时,正常的执行顺序是,先执行源ViewController的prepareForSegue,再执行目标VC的ViewDidLoad,所以你可以在prepare ...

最新文章

  1. Qt学习之路(9):深入了解信号槽
  2. P53:进化了8亿年的抑癌基因
  3. 95-20-010-协议-Kafka的Request和Response
  4. oir 用image j打开的插件_Windows 上使用 VSCode Remote 插件进行远程开发
  5. kali如何取得超级用户权限_微商如何取得好的口碑?好的口碑等于信任微商如何提高用户信任?...
  6. 基于CarMaker的C-NCAP主动安全系统试验仿真(四)
  7. 深度学习软件安装及环境配置(Win10)
  8. 【渝粤题库】陕西师范大学201901 中国古代文学(二) 作业(高起专)
  9. selenium设置文件下载路径
  10. 前端-深克隆与浅克隆
  11. cd linux安装驱动程序,给CDlinux增添网卡驱动失败的原因和对策
  12. VMware16安装Ubuntu22.04(并解决vmtools问题)
  13. SourceInsight4.0黑色背景主题
  14. linux安装python教程视频_新手开发者的极简Linux上手Python视频教程
  15. LDPC码的EXIT图
  16. 2023安徽大学计算机考研信息汇总
  17. pandas || df.dropna() 缺失值删除
  18. 嵌入式 使用mp4v2将H264+AAC合成mp4文件
  19. Rational Rose7.0的安装(含图详解)
  20. 坐式养生八段锦口诀及练法图解

热门文章

  1. Java中的Ant与Maven比较整理
  2. HTML + CSS实现图片3D旋转效果
  3. 苏宁小店上线咖啡业务,成为国内O2O社区便利店的创领者!
  4. nodejs个人学习笔记
  5. 张尧学等人获奖,理由不充分
  6. 思科配置系统日志服务器配置,思科路由器 设置日志服务器配置
  7. dev:dev fatal: HttpRequestException encountered. remote: Invalid username or password. fatal: Authen
  8. 基本知识 100040
  9. ognl.OgnlException: target is null for setProperty(null, offset, [Ljava.lang.String;@1667f3c) 解决方法
  10. 哔哩下载姬(B站下载工具)