来自不同故事板的Swift PushViewController

来自不同故事板的Swift PushViewController,swift,uiviewcontroller,uinavigationcontroller,uistoryboard,uistoryboardsegue,Swift,Uiviewcontroller,Uinavigationcontroller,Uistoryboard,Uistoryboardsegue,我试图以编程方式显示另一个故事板的视图控制器之一。但由于某些原因,我试图显示的ViewController的属性为零 这是我的错误:在展开可选值时意外发现nil 我在我的SecondViewController中得到错误。它正在显示,但是 由于属性为零,我的应用程序崩溃 这是我的密码: let secondStoryBoard = UIStoryboard(name: "SecondStoryBoard", bundle: nil) let secondViewController = seco

我试图以编程方式显示另一个故事板的
视图控制器之一。但由于某些原因,我试图显示的
ViewController
的属性为零

这是我的错误:
在展开可选值时意外发现nil

我在我的
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
连接


这意味着以下行不是
nil
,就是不是
SecondVC
类型

secondStoryBoard.instantiateViewController(withIdentifier: "secondVC")
我将在您的故事板中验证您是否具有标识符
secondVC
,并且视图控制器的类型为
secondVC

secondStoryBoard.instantiateViewController(withIdentifier: "secondVC")

编辑:

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

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

    override func viewDidLoad() {
        mapView.isHidden = true
    }
}
基本上,这将等待视图加载后再访问
mapView
。对于原始代码,您试图在实际加载之前访问
mapView


编辑2:


看起来,
mapView
outlet未正确链接到情节提要。

谢谢,我想我解释得还不够。我编辑了我的question@Marie.K我不明白你的编辑<代码>它正在显示,但我的应用程序由于属性为零而崩溃。
。哪些属性为零?你能给我看一下这行吗?对不起,我编辑过了again@CharlieFish我想这是一个非常常见的问题,
IBOutlet的连接不良
好的,伙计们,谢谢你们,我刚刚断开并重新连接了我的IBOutlet。我知道这是什么意思了。我只是不知道为什么我会犯这个错误