2016-12-21 5 views
-2

2番目のVCのラベルにデータをfunc mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)で渡そうとしています。Swift:定数 ''を初期化する前に使用

定数 'destVC' 初期化される前に使用:私はannotation.titleshopName.textを設定

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) { 

    print("Annotation selected") 


    if let annotation = view.annotation as? POIAnnotations { 

     let destVC : ShopDetailViewController 

     destVC.shopName.text = annotation.title! 

     print("Your annotation title is: \(annotation.title!)") 

    } 

} 

は、私はというエラーを取得します。

何が問題になるのかよく分かりません。

答えて

5

を使用している場合は、storyboard

let destVC = self.storyboard?.instantiateViewController(withIdentifier: "IdentifierOfVC") as! ShopDetailViewController 

を使用している場合は、あなたが唯一の変数destVC宣言して、それを初期化されていません。変数を使用する前に直接またはストーリーボードを介して変数を設定する必要があります。この:それを初期化することShopDetailViewController`:

let destVC = ShopDetailViewController() 

または

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) 
let destVC = storyboard.instantiateViewController(withIdentifier: "ShopDetailViewController") as! ShopDetailViewController 
2

const destVCをまだ初期化しておらず、そのプロパティshopNameを使用しようとしているというエラーは、明らかです。したがって、そのプロパティにアクセスする前にdestVCを初期化するとエラーが取り除かれます。

あなたはxib

let destVC = ShopDetailViewController() 
+0

は 'destVCはできないだろうか?どのように私はそれを初期化するだろうか? – daanyyaal

+0

@daanyyaal storyboardのviewControllerの識別子を設定する方法がわからない場合は、これをチェックしてください。http://stackoverflow.com/a/15478575/6433023 –

関連する問題