【问题标题】:Difference between a custom UIStoryboardSegue and UIViewController transition自定义 UIStoryboardSegue 和 UIViewController 转换之间的区别
【发布时间】:2014-02-02 21:51:37
【问题描述】:

我试图找出自定义 UIStoryboardSegue 和自定义 UIViewcontroller 转换(在 ios7 中引入)之间的区别。

两者有什么区别和不同的用例?据我所知,它们都用于自定义移动到新控制器。

可能UIViewcontroller 转换更多地用于仅显示的控制器,并且某些点会被忽略,而segue 是一个完整的移动而不一定是一个后退?

Custom Segues
UIViewControllerTransitioningDelegate Protocol Reference

【问题讨论】:

  • Segue 定义了两个视图控制器之间的动作(关闭 A 和显示 B),而视图控制器转换描述了视图控制器如何出现或关闭。
  • 你是想说一个segue有一个特定的方向,而一个视图控制器转换没有一个呈现和呈现的视图控制器,或者动画一个进或出?
  • 我的意思是segue封装了诸如[vc1 push:xxx]或[vc1 presentModal:xxx]之类的动作,这是一种方便的方法,可以通过默认过渡(push, modal) 定义的,你不需要写这样的代码,只需调用 [self performSegueWithIdentifier:xxx]。而且在我看来,过渡委托允许您自定义动画效果。
  • @Danyun - 谢谢,自定义 segue 有什么作用......同样的?允许您自定义动作之间的动画效果吗?在我当前的应用程序中,我在情节提要中使用 segue 并按照建议调用 self performSegueWithIdentifier,然后为动画使用自定义过渡。
  • 对于任何在此处搜索的人来说都是一个小问题 - 如果您刚刚进入这里,这里有一个关于如何设置它的长长解释..stackoverflow.com/a/23403979/294884 可能会有所帮助!

标签: ios uiviewcontroller ios7 uistoryboard uistoryboardsegue


【解决方案1】:

自定义 Segue 不仅用于定义呈现样式,还可以用于定义视图控制器的自定义层次结构以及呈现样式——这与导航或标签栏视图控制器不同。

使用自定义 segue 仅用于演示的问题是开发人员还负责管理视图控制器层次结构,这实际上不是意图。

使用自定义转换 API,呈现与视图控制器的管理方式是分开的。

【讨论】:

  • 这是有道理的。是否有任何方法可以触发视图控制器从自定义 segue 转换或使用自定义 segue 时保持分离的任何其他方式?
【解决方案2】:

如果您使用故事板转场并且想要自定义过渡,则可以使用自定义 UIStoryboardSegue。但是,如果您使用常规 UIViewController 方法来呈现新的视图控制器,您将使用自定义 UIViewController 转换。在这两种情况下,您之前的视图控制器仍然存在,如果您愿意,您可以返回。这仅取决于您要使用哪种方法来调出新的视图控制器。

【讨论】:

  • 我不确定这是否正确,因为您可以毫无问题地将 UIViewController 过渡与 segues 一起使用。我已经设置了一些视图控制器转换,并结合使用 segues,甚至是自定义转换。但是,我不知道这些和用例之间的区别。
  • 你可以,是的。但我认为你只能在实际使用 segues 时使用自定义 UIStoryboardSegue
  • @StuartM 至少在一种情况下,您不能将 UIViewControllerTransitioningDelegate 与情节提要 segues 一起使用。当您有一个具有多个子级的自定义容器视图控制器,并且您希望自定义 segue 从一个子级过渡到另一个子级并在容器控制器上正确执行 -addChildViewController: 时,标准的演示文稿过渡不起作用,因为它不会t 处理育儿问题。 AFAICT,你必须自己做这个育儿,自定义 segue 是一个合乎逻辑的地方 - 但是不使用 UIViewControllerTransitioningDelegate。
猜你喜欢
  • 2012-06-16
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 2013-05-24
  • 1970-01-01
  • 2016-09-02
相关资源
最近更新 更多