【问题标题】:Swift 3: PerformSegue WithIdentifier Not Displaying View Controller, No ErrorsSwift 3:PerformSegue WithIdentifier 不显示视图控制器,没有错误
【发布时间】:2016-10-13 15:58:50
【问题描述】:

当我执行下面的行时,我的目标视图控制器没有视觉呈现,但日志中没有错误:

performSegue (withIdentifier: "DetailsViewController", sender: self)

让我们从一个问题退后一步。想象一下我的成功设置:ViewController 已加载,并且在某些用户操作后,上面的行实际上会打开一个新的DetailsViewController。我测试了 - 一切都按预期工作 - 所以我知道它有效。

但是当我决定通过向我的ViewController 添加一个CamViewController 并在CamViewController 内的元素点击上执行segue 时,出现DetailsViewController 的问题就开始了,然后委托方法将此操作传递回ViewController 我将打开 DetailsViewController。使用这种架构设置,我在日志中没有任何错误,但视觉上没有任何内容打开。没有出现过DetailsViewController

更多架构细节:

  • ViewControllerself.present(camViewController, animated: true, completion: nil) 一起呈现CamViewController
  • CamViewController 实现了一个协议来调用用户操作的一些方法
  • ViewController 符合 CamViewController 协议,并且委托方法在用户操作上成功运行(日志显示它正在工作)
  • 使用 segue 标识符调用 DetailsViewController 已成功执行 performSegue (withIdentifier: "DetailsViewController", sender: self)DetailsViewController 永远不会显示在屏幕上。
  • 下面的这个方法打印prepare for segue Optional("DetailsViewController"),听起来是正确的。

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
       print("prepare for segue \(segue.identifier)")
    }
    

我也尝试添加 super.performSegue - 不走运

【问题讨论】:

  • 你能给我关于你正在添加到视图控制器的 camviewcontroller 的详细信息
  • 没错,是open class CamViewController: UIViewController, XYManagerDelegate
  • 你的日志什么也没说?也许关于视图层次结构
  • 如何关闭 CamViewController?显示 CamViewController 后是否有可能有两个 DetailsViewController 实例?

标签: ios iphone swift uiviewcontroller swift3


【解决方案1】:

首先,我会将您的 segue 代码更改为类似这样的代码。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "DetailsViewController"){
        print("prepare for segue DetailsViewController")
    }  else {
        print("prepare for segue other")
    }
}

【讨论】:

  • 谢谢。它按预期打印prepare for segue DetailsViewController,所以我知道segue 是有效的并且似乎被正确触发。但没有显示视图控制器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多