【问题标题】:Container view segue as modal in current context容器视图在当前上下文中作为模态视图
【发布时间】:2017-06-05 22:20:00
【问题描述】:

寻找一种解决方案,从嵌入在容器视图中的视图控制器 (VC2) 执行转场,并将其替换为保持与 VC2 大小相同的下一个视图控制器 (VC3)。

我继续设置控制器,这正是我正在寻找的:

Container view segue to same size view controller

我使用情节提要中的当前上下文模式或以编程方式将 VC2 到 VC3 的转场设置为模态转场,但 VC3 仍在全屏加载

谢谢

【问题讨论】:

  • 已解决:我将 VC2 嵌入到 UINavigationcontroller 中,并将 VC2 和 VC3 之间的 segue 更改为 push
  • 您知道您可以只写一个答案并接受它,而不是发表评论并更改您的问题标题。
  • @AlbertoLunardini 您应该写下您的答案作为您问题的解决方案。这有助于将此问题标记为已解决,其他人也可以解决他们的问题! :)

标签: ios swift segue modalviewcontroller uicontainerview


【解决方案1】:

在 VC2 的 viewDidLoad 中添加:

definesPresentationContext = true

它不起作用的原因是,当您将 segue 设置为 currentcontext 时,它会搜索视图控制器堆栈以寻找将 definePresentationContext 设置为 true 的视图控制器。它找到的视图控制器将被替换。

更多信息在这里:https://developer.apple.com/documentation/uikit/uiviewcontroller/1621456-definespresentationcontext

如果没有找到定义PresentationContext = true 的视图控制器,则VC3 将显示在窗口上。这就是它仍然是全屏的原因。

另外一个原因是在导航堆栈上工作是因为导航控制器是唯一默认情况下定义PresentationContext = true的视图控制器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多