【问题标题】:Segue back to a navigation controller转回导航控制器
【发布时间】:2018-08-19 05:14:25
【问题描述】:

我是 XCode/Swift 的新手,正在尝试为我的第一个测验应用程序编写故事板 :)

我已经阅读了许多人的帖子,他们都面临着我所面临的问题,但我无法与我的案例相提并论。有人知道我可以让这个工作吗?

到此为止(请参阅此处的屏幕截图了解更多详细信息)

1) 首先是一个标签栏。我正在制作的故事板从第一个视图开始

2) 然后是导航栏:

  • 在第一页,我可以选择 1 个主题(segue: show)
  • 在第 2 页,我可以选择 1 个测验(segue: show detail)
  • 在第 3 页,我玩测验 - 这里,我只是点击结束按钮,代码不在此示例中(segue:show)
  • 在第 4 页,我得到了结果,我想按“返回”返回到第 1 页。

但是,如果我从第 4 页转到第 1 页,导航控制器就会“消失”。

==> 如何在不丢失导航控制器的情况下正确转回我的第一页?

提前感谢您的支持,

问候, 玛蒂尔德

【问题讨论】:

    标签: ios swift uinavigationcontroller storyboard


    【解决方案1】:

    通过 IBAction 将“返回”按钮连接到第四个视图控制器中的方法,然后使用导航控制器 popToViewController 方法。示例:

    @IBAction func backButtonTapped(_ button: UIButton) {
        if let firstViewController = self.navigationController?.viewControllers.first {
            self.navigationController?.popToViewController(firstViewController, animated: true)
        } 
    }
    

    【讨论】:

      【解决方案2】:

      感谢您的回答。这听起来很简单,但是当我运行这段代码时,单击后退按钮时没有任何反应。

      不知道出了什么问题。找到后我会及时通知你...

      这是我的代码中的样子。我的第一个 VC 叫做“FirstViewController”

      import UIKit
      
      class endQuizA1ViewController: UIViewController {
      
      @IBAction func back(_ sender: UIButton)
      {
          if let FirstViewController = self.navigationController?.viewControllers.first {
              self.navigationController?.popToViewController(FirstViewController, animated: true)
          }
      }
      
      override func viewDidLoad() {
          super.viewDidLoad()
      }
      
      override func didReceiveMemoryWarning() {
          super.didReceiveMemoryWarning()
      }
      

      }

      【讨论】:

        猜你喜欢
        • 2019-11-22
        • 2020-05-27
        • 1970-01-01
        • 1970-01-01
        • 2020-07-14
        • 2020-10-02
        • 1970-01-01
        • 2014-01-21
        • 2017-05-14
        相关资源
        最近更新 更多