Segue几种类型(Show、Show Detail、Present modally、Present as Popover)的区别

iOS中,segue的class为UIStoryboardSegue,用于storyboard中不同视图控制器间转场,即从一个视图控制器转场到另一个视图控制器。Segue的起点必须是一个view或者定义某些操作的对象,如:UIBarButtonItem、UIControl和UIGestureRecognizer。

Segue分为以下几种类型,其中Push、Modal、Popover和Replace已弃用。

  • Show
  • Show Detail
  • Present Modally
  • Present as Popover
  • Custom
  • Push
  • Modal
  • Popover
  • Replace

在iPhone中有Show、Show Detail、Present Modally、Custom四种不同类型,iPad中有Show、Show Detail、Present Modally、Present as Popover、Custom五种不同类型。

Show
  • 使用方法showViewController: sender:
  • 一般用在UINavigationController的视图控制器中。
  • 切换方式:进入时由右向左,退出时由左向右。
  • 新压入的视图控制器有返回按钮,单击可以返回。
Show Detail
  • 使用方法showDetailViewController: sender:
  • 只适用于嵌入在UISplitViewController对象内的视图控制器,分割控制器用以替换详细控制器(DetailViewController)。
  • 不提供返回按钮。
Present Modally
  • 使用方法presentViewController: animated: completion:
  • 有多种不同呈现方式,可根据需要设置。在iPhone中,一般以动画的形式自下向上覆盖整个屏幕,用户无法与上一个视图交互,除非关闭当前视图;在iPad中,常见呈现为一个中心框,中心框以动画形式自下向上弹出,同时使底层视图控制器变暗。
  • 不提供返回按钮。
Present as Popover

在iPad中,目标视图以浮动窗样式呈现,点击目标视图以外区域,目标视图消失;在iPhone中,默认目标视图以模态覆盖整个屏幕。

Custom

自定义跳转方式


下面GIF演示了Show和Present在新页面出现方式的区别:


Segue.gif

presentViewController: animated: completion:一般用在UIViewController中,是用另一个视图控制器替换自己。退出时使用dismissViewControllerAnimated: completion:方法。

showDetailViewController: sender:一般用在UINavigationController中,是在自己的视图控制器上呈现另一个视图控制器。退出时使用popViewControllerAnimated:方法。



作者:pro648
链接:http://www.jianshu.com/p/36a48e47555d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值