【问题标题】:Swift PushViewController From A Different Storyboard [duplicate]来自不同故事板的 Swift PushViewController [重复]
【发布时间】:2019-05-26 13:57:49
【问题描述】:

我正在尝试以编程方式显示我的 ViewControllers 中的一个不同的故事板。但由于某些原因,我试图展示的ViewController 的属性为零。

这是我的错误:Unexpectedly found nil while unwrapping an Optional value

我在SecondViewController 中收到错误消息。它显示但 由于属性为零,我的应用程序崩溃了。

这是我的代码:

let secondStoryBoard = UIStoryboard(name: "SecondStoryBoard", bundle: nil)
let secondViewController = secondStoryBoard.instantiateViewController(withIdentifier: "secondVC") as! SecondVC


self.navigationController?.pushViewController(secondViewController, animated: true)

这是产生错误的代码:

class SecondVC: ViewController
{
    @IBOutlet weak var mapView: MKMapView!
    mapView.isHidden = true // ERROR!! Unexpectedly found nil while unwrapping an Optional value
}

已解决:只需重新连接我的 @IBOutlet 连接

【问题讨论】:

  • 我知道这意味着什么。我只是不知道为什么会出现此错误

标签: swift uiviewcontroller uinavigationcontroller uistoryboard uistoryboardsegue


【解决方案1】:

这意味着下面的行要么是nil,要么不是SecondVC

secondStoryBoard.instantiateViewController(withIdentifier: "secondVC")

我会在你的故事板中验证你有一个标识符 secondVC 并且视图控制器的类型是 SecondVC


编辑:

根据 OP 在问题中发布的新代码,将 SecondVC 更改为以下内容应该可以工作。

class SecondVC: ViewController
{
    @IBOutlet weak var mapView: MKMapView!

    override func viewDidLoad() {
        mapView.isHidden = true
    }
}

基本上,这将等到视图加载完毕后再访问mapView。对于原始代码,您在实际加载之前尝试访问mapView


编辑 2:

mapView 出口似乎没有正确链接到情节提要。

【讨论】:

  • 谢谢,我觉得我解释得还不够。我编辑了我的问题
  • @Marie.K 我不明白你的编辑。 It is showing but my app crashes due to the properties being nil.。哪些属性是零?你能显示它实际崩溃的那条线吗?
  • 对不起,我再次编辑了它
  • @CharlieFish 我认为这只是IBOutlet连接不良的一个非常常见的问题
  • 好的,谢谢你们,我刚刚断开并重新连接了我的 IBOutlet。现在可以使用了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
相关资源
最近更新 更多