在storyboard中,segue有几种不同的类型,在iphone和ipad的开发中,segue的类型是不同的。
在iphone中,segue有:push,modal,和custom三种不同的类型,这些类型的区别在与新页面出现的方式。
而在ipad中,有push,modal,popover,replace和custom五种不同的类型。

modal 模态转换
最常用的场景,新的场景完全盖住了旧的那个。用户无法再与上一个场景交互,除非他们先关闭这个场景。
是在viewController中的标准切换的方式,包括淡出什么的,可以选切换动画。
Modalview:就是会弹出一个view,你只能在该view上操作,而不能切换到其他view,除非你关闭了modalview.
Modal View对应的segue type就是modal segue。

Push类型一般是需要头一个界面是个Navigation Controller的。
是在navigation View Controller中下一级时使用的那种从右侧划入的方式

popover类型,就是采用浮动窗的形式把新页面展示出来

replace类型就是替换

custom就是自定义跳转方式啦。

视图之间的数据传递
当你从当前场景中触发一个segue的时候,系统会自动调用prepareForSegue:sender:这个方法。如果你想从一个界面切换到里另一个界面的时候传递数据,你应该override这个方法。
A -> B
想把数据  NSString A_data   从AController传到BController,则在BController中
@property 一个NSString data
然后在AController中添加方法
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"The segue id is %@", segue.identifier );
    UIViewController *destination = segue.destinationViewController;  
    if ([destination respondsToSelector:@selector(setData:)])
    {
        [destination setValue:@"这是要传递的数据" forKey:@"data"];
    }   
}
之后,Bcontroller中的data属性,就接收到数据了。

ViewController之间的跳转
1、如果在 Storyboard中当前的 ViewController和要跳转的ViewController之间的segue存在,则可以执行performSegueWithIdentifier:sender:这个方法实现跳转。
2、如果目标ViewController存在Storyboard中,但是没有segue。你可以通过UIStoryboard的 instantiateViewControllerWithIdentifier:这个方法获取到它,然后再用你想要的方式实现跳转,如:压栈。
3、如果目标ViewController不存在,那就去创建它吧。

转载于:https://www.cnblogs.com/Free-Thinker/p/5001931.html

iOS开发中视图相关的小笔记:push、modal、popover、replace、custom相关推荐

  1. iOS开发中一些有用的小代码

    1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @&quo ...

  2. iOS 开发中需要注意的小地方

    /** 图片长度截取方法 */ - (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect )rect{CGImageRef sourceI ...

  3. iOS开发中使用UILabel设置字体的相关技巧小结

    这篇文章主要介绍了iOS开发中UILabel设置字体的相关技巧小结,代码基于传统的Objective-C,需要的朋友可以参考下 一.初始化 复制代码代码如下: UILabel *myLabel = [ ...

  4. iOS开发中键盘样式和自定义键盘。

    文章目录 系统自带的样式 自定义键盘 在系统自带键盘基础上自定义键盘 完全自定义键盘 自定义全部类型键盘 系统自带的样式 在iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求, ...

  5. iOS 开发中的 Flux 架构模式

    本文讲的是iOS 开发中的 Flux 架构模式, 在半年前,我开始在 PlanGrid iOS 应用程序中采用 Flux 架构(开发).这篇文章将会讨论我们从传统的 MVC 转换到Flux的动机,同时 ...

  6. iOS 开发中的多线程

    线程.进程 什么是线程.进程   有的人说进程就像是人的脑袋,线程就是脑袋上的头发~~.其实这么比方不算错,但是更简单的来说,用迅雷下载文件,迅雷这个程序就是一个进程,下载的文件就是一个线程,同时下载 ...

  7. iOS开发中标签控制器的使用——UITabBarController

    iOS开发中标签控制器的使用--UITabBarController 一.引言 与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理 ...

  8. iOS开发UI篇—iOS开发中三种简单的动画设置

    [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要"参与到"动画中 [UIView beginAnimations: ...

  9. 在iOS开发中使用FMDB

    在iOS开发中使用FMDB 前言 SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK 很早就支持了 SQLite,在使用时,只需 ...

最新文章

  1. 华为认证物联网开发利器:小熊派IoT开发板
  2. 嵌入式系统开发过程中遇到的——volatile
  3. windows下安装pygtk报g_assertion_message无法定位libglib-2.0-0.dll错误解决
  4. Zookeeper的安装与配置
  5. Oracle中的Union、Union All、Intersect、Minus
  6. 语言特性与API设计
  7. BZOJ 3277 串 BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析)
  8. 【Docker系列教程之一】docker入门
  9. java全局变量和局部变量
  10. 使用ETag识别ajax,如何使用jQuery AJAX请求访问ETag头?
  11. qt生成无ui界面动态库,有ui界面的动态库,以及含有资源文件和qss文件的动态库
  12. ROS中阶笔记(六):机器人感知—机器语音
  13. 基础才是重中之重~类是怎么执行的
  14. FreeBSD tips
  15. 客服机器人代码_企业微信群机器人如何快速集成?无需开发连接微信公众号,表单系统,钉钉,推广,CRM,客服系统和数据库...
  16. 做python自动化得时候怎么添加断言_python接口自动化(二十四)--unittest断言——中(详解)...
  17. [UPF]低功耗仿真介绍
  18. SRVCC关键场景及Log分析
  19. openssl的部分使用例子
  20. Python:retrying与tenacity模块失败重跑库

热门文章

  1. Java连接数据库(3)
  2. java和C操作数组的一个小区别
  3. C语言从文件中读入矩阵,并且将矩阵转置
  4. 面向对象的多态性(2)
  5. matlab中reshape和repmat函数的用法
  6. python 内存不足 dict 替代方案_2D数组代表一个巨大的python dict,COOrdinate就像解决方案来节省内存...
  7. 原根与指标(离散对数)
  8. maven java 目录结构_java – 为maven目录结构生成的源文件的位置
  9. A、B、C、D四个字母,能组成多少个互不相同且无重复三位组合
  10. 最短Hamilton路径-状压dp解法