【问题标题】:Navigating One View Controller to Another using Swift 5 doesn't work使用 Swift 5 将一个视图控制器导航到另一个视图控制器不起作用
【发布时间】:2019-11-27 09:22:26
【问题描述】:

好的伙计们,由于你们的帮助,我已经解决了这个问题,

错误消失了。

但是页面不会移动到“requirementVC”,所以当我点击按钮时,它什么也没做。

@IBAction func buttonOK(_ sender: Any) {

    let button = (self.storyboard?.instantiateViewController(withIdentifier: "RequirementsVC") as! requirementVC)
    self.navigationController?.show(button, sender: nil)

}

再次感谢,感谢!

【问题讨论】:

标签: ios viewcontroller swift5


【解决方案1】:

您可以执行以下操作...

@IBAction func buttonOK(_ sender: Any) {

  let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "RequirementsVC") as! requirementsVC
  self.navigationController?.pushViewController(vc, animated: true)

}

这里Main 是故事板的名称。

RequirementsVC 应该是在情节提要中设置的情节提要 ID。

requirementsVC 应该是UIViewController 的子类。

//Class name should always start with capital letter. So rename requirementsVC to "RequirementsVC"
class RequirementsVC: UIViewController {

    //class body

}

【讨论】:

  • 这里仍然有同样的错误。另外,我已经通过拖动它来创建视图控制器。所以我已经有一个了。我只想以编程方式从一页转到另一页
  • 你能把RequirementsVC类的代码贴出来
  • 只是默认代码.. 导入 UIKit 类要求VC: UIViewController { override func viewDidLoad() { super.viewDidLoad() } } */ }
  • 什么是“应用程序”?是你的项目名还是自定义类名?
  • "App" 是我的项目名称
【解决方案2】:

只需在此代码中设置您的标识符和要继续的 viewController 类:=

    let addReminderVc = self.storyboard?.instantiateViewController(withIdentifier: "AddReminderVC") as! AddReminderVC
    self.navigationController?.pushViewController(addReminderVc, animated: true)

【讨论】:

  • 我做了你所说的一切,我已经设置了故事板 ID,将其设置为 asction,等等,它运行良好,但是当我点击按钮时,唯一的事情没有发生。没有任何改变。
  • 您是否通过设置断点检查获取 nil 导航控制器。所以,可能是你没有在 NavigationController 中嵌入你的初始 Vc。
猜你喜欢
  • 2016-09-06
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
相关资源
最近更新 更多