2016-12-21 3 views
-2

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) 함수를 통해 두 번째 VC의 레이블로 데이터를 전달하려고합니다.스위프트 : 초기화되기 전에 사용되는 상수

상수 '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 선언, 그것을 초기화되지 않습니다. 변수를 사용하기 전에 직접 또는 스토리 보드를 통해 변수를 생성해야합니다. 이 :

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 : 그것을 초기화 할 수 ShopDetailViewController'? 어떻게 초기화할까요? – daanyyaal

+0

@daanyyaal storyboard에서 viewController의 식별자를 설정하는 방법을 모른다면이 점을 확인하십시오. http://stackoverflow.com/a/15478575/6433023 –