美文网首页IOSiOS开发iOS 开发每天分享优质文章
Segue几种类型(Show、Show Detail、Prese

Segue几种类型(Show、Show Detail、Prese

作者: pro648 | 来源:发表于2016-12-20 00:01 被阅读4288次

    本文不够全面,建议查看View Controller 转场这篇文章。

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

    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堆栈视图时,presentedViewController进入时由右向左,退出时由左向右。新压入的视图控制器有返回按钮,单击可以返回。
    • 用在UIViewController实例时,和presentViewController: animated: completion:效果一致。

    Show Detail

    • 使用方法showDetailViewController: sender:
    • 只适用于嵌入在UISplitViewController对象内的视图控制器,分割控制器用以替换详细控制器(DetailViewController)。
    • 不提供返回按钮。
    • 用于UISplitViewController以外的控制器时,和showViewController:sender用法一样。

    Present Modally

    • 使用方法presentViewController: animated: completion:
    • 有多种不同呈现方式,可根据需要设置。在iPhone中,一般以动画的形式自下向上覆盖整个屏幕,用户无法与上一个视图交互,除非关闭当前视图;在iPad中,常见呈现为一个中心框,中心框以动画形式自下向上弹出,同时使底层视图控制器变暗。
    • 不提供返回按钮。

    Present as Popover

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

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

    Segue.gif

    presentViewController: animated: completion: 是用另一个视图控制器替换自己,会根据presentationStyle选择呈现方式。退出时使用dismissViewControllerAnimated: completion: 方法。

    showDetailViewController: sender:是一种自适应方法,会根据当前状态进行不同操作,对应退出方法也不同。

    参考资料:

    1. View Controller 转场
    2. View Controller Programming Guide for iOS---Using Segues
    3. dismissViewController vs popViewController
    4. What's the difference between all the Selection Segues

    本文地址:https://www.jianshu.com/p/36a48e47555d
    欢迎更多指正:https://github.com/pro648/tips/wiki

    相关文章

      网友评论

        本文标题:Segue几种类型(Show、Show Detail、Prese

        本文链接:https://www.haomeiwen.com/subject/ttlxvttx.html