【问题标题】:Unwind Segue or something else?放松 Segue 还是别的什么?
【发布时间】:2018-04-06 09:06:13
【问题描述】:

我正在构建一个带有 6 个 ViewController 的应用程序(我们称它们为 A、B、C、D、E 和 F)。 A 是“菜单”视图控制器。

您可以从 A 到达 B 或 F。
您可以从 B 返回 A 或继续前往 C。
从 C 你可以回到 B 或继续到 D。
从 D 你可以回到 C 或继续到 E。
从 E 你不能回到 D,但你可以回到 A 或 B。
从F只能回到A。

我的问题是:哪些转场应该是“显示”转场,哪些转场应该是“展开”转场?还是我应该做另一件事?

【问题讨论】:

  • 节目继续进行。放松倒退。

标签: ios uiviewcontroller segue unwind-segue


【解决方案1】:

显示 - 前进

放松 - 向后

所以例如-

当从 A -> B 移动时 使用显示

现在回来时,即 B -> A 使用放松。

【讨论】:

  • 是的,但您可以放松到一个特定的视图控制器,对吧?或者是否有可能从 E 放松到 A 和 B?
  • 你可以放松到任何视图控制器,只要它回到层次结构中
  • 展开过程会自动获取上一个实例,所以你会自动返回。 Apple 技术说明中的描述相同 - developer.apple.com/library/content/technotes/tn2298/…
  • 好吧,我想我太不具体了:是否可以从一个 ViewController 中获得 2 个展开转场?例如,有一个从 E 到 A 的展开 segue 和另一个从 E 到 B 的展开 segue?
  • 你可以参考这篇 SO 帖子 - stackoverflow.com/questions/12561735/…
【解决方案2】:

如果你使用“show”segue,那么你将使用 unwind 返回到视图层次结构中之前的任何 ViewController,但是如果你使用“present modalally”,那么你必须使用dismiss 来返回。尽管通过 unwind 您可以从最新的 ViewController 转到第一个最多的 ViewController,但是通过解除只有最新的 ViewController 会被解除。只要你为每一个都创建一个@IBAction 并提供标识符,你就可以有尽可能多的展开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多