ios - swift 3 : PerformSegue WithIdentifier Not Displaying View Controller, 没有错误

标签 ios iphone swift uiviewcontroller swift3

当我执行下面的行时,我的目标 View Controller 没有直观地呈现,但日志中没有错误:

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

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

但是,当我决定通过向我的 ViewController 添加 CamViewController 并执行 segue 来实现某些第三方框架时,出现 DetailsViewController 的问题就开始了元素点击 CamViewController 内部,然后委托(delegate)方法将此操作传递回 ViewController,我将从中打开 DetailsViewController。通过这种架构设置,我在日志中没有收到任何错误,但视觉上没有任何内容打开。从未出现过 DetailsViewController

更多架构细节:

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

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

我还尝试添加 super.performSegue - 没有运气

最佳答案

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

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

关于ios - swift 3 : PerformSegue WithIdentifier Not Displaying View Controller, 没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40025774/

相关文章:

ios - 无法更新我的广告连播

ios - 如何禁止 CALayers 响应 HitTest ?

ios - 保留选中和未选中的 UITabBar 图标的原始图像颜色

ios - 如何使用 Alamofire 从数组中获取数据以显示在 Collection Cell 中?

swift - 断言失败 : self. 必须分配表单属性

ios - 在具有透明 View 的 UITableview 中显示图像列表

iphone - 如何计算 UILabel 可以包含的 NSString 最大长度而不截断文本?

iphone - 恢复应用内购买

swift : Animate SKSpriteNode Gradient

swift - 计算并在键盘上移动 UIView(显示/隐藏)