ViewControllers
別のストーリーボードの1つをプログラムで表示しようとしています。しかし、いくつかの理由で、ViewController
私が見せようとしているプロパティはゼロです。
それは私のエラーです: Unexpectedly found nil while unwrapping an Optional value
でエラーが発生します
SecondViewController
。表示されていますが、プロパティがnilであるため、アプリがクラッシュします。
それが私のコードです:
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
あり、ViewControllerがタイプであることを確認しますSecondVC
。
編集:
OPが質問に投稿した新しいコードに基づいて、SecondVCを次のように変更すると機能するはずです。
class SecondVC: ViewController
{
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
mapView.isHidden = true
}
}
基本的に、これはビューがロードされるまで待機してからにアクセスしmapView
ます。元のコードの場合、mapView
実際にロードされる前にアクセスしようとしていました。
編集2:
mapView
アウトレットがストーリーボードに適切にリンクされていないようです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加