【问题标题】:ViewController segue to Nav Controller Immediately Pops off Nav Controller and returns to ViewControllerViewController segue to Nav Controller 立即弹出 Nav Controller 并返回到 ViewController
【发布时间】:2018-10-12 02:52:46
【问题描述】:

我在导航控制器中嵌入了一个视图控制器,用于 AWS Cognito。

然后我有一个单独的堆栈,它与初始 VC 相连。

我将第二个堆栈嵌入到它自己的导航控制器中,并且我尝试过以模态方式推送、显示和呈现。每次我尝试转入新的导航控制器时,都会执行转场,然后弹出新的堆栈,并且会看到初始的 VC。这是我的故事板的设置方式:

这是我为 segue 做的准备:

  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "FindTruth" {
      if let findTruthVC = segue.destination as? FindTruth {
        if let user = sender as? User {
        if let userDetails = self.userDetails {
          user.userDetails = userDetails
          print("User Details: \(userDetails) passed")
        }
          findTruthVC.user = user
          print("User: \(user.userId) passed")
        }
      }
    }
  }

调用segue:

self.performSegue(withIdentifier: "FindTruth", sender: self.user)

从第 2 个堆栈到初始堆栈/VC 没有代码或情节提要参考

编辑 - 当我将我的故事板设置如下(从 VC 到 VC 的转场)时,视图会转换,然后 VC 会变为空白,它不会转换回登录视图,但应用程序无法使用

【问题讨论】:

    标签: ios swift xcode uinavigationcontroller segue


    【解决方案1】:

    【讨论】:

    • 没关系,我在您编辑后阅读了链接。我最初尝试这样做,但我的导航栏按钮没有出现。我假设是因为它绕过了导航控制器
    • 是的。您可以通过编程方式处理 Thread:medium.com/@abhimuralidharan/…
    • 是的,从 LoginVC 到 FindTruth - 但现在整个屏幕都变黑了,不仅仅是导航栏项目
    • NavigationController 应该是初始状态。把箭头放在上面。
    • 谢谢,我没注意到。我刚刚更改了它,但它仍然是一样的 - 在 segue 加载视图之后返回登录 VC
    【解决方案2】:

    好吧,导航控制器是一个完全不同的实体。 你不能推到他们身上。 你应该使用self.present(UINavigationController(), animated: true, completion: nil)

    【讨论】:

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