2017-09-20 3 views
0

다음 오류가 발생했습니다.언 래핑하는 동안 예외가 발생했습니다.

fatal error: unexpectedly found nil while unwrapping an Optional value 
2017-09-20 23:08:46.626918+0400 UnitConverter[6852:10110844] fatal error: unexpectedly found nil while unwrapping an Optional value 

코드 및 이미지가 첨부되어 있습니다. 뷰가로드 될 때

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     let webVC = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "webVC") as! ViewController 
     webVC.lblCategory.text = self.uc.categories[indexPath.row] 
    } 

enter image description here

+2

뭔가가 없어야합니다. 아래의 Sulthan이 말한 것처럼 뷰가로드되지 않았으므로 연결이 설정되지 않았기 때문에'lblCategory'입니다. – Kevin

+1

@Kevin Nah, 뷰가로드되기 전에 콘센트에 액세스하고 있습니다 (뷰에 액세스하지 않았거나'loadViewIfNeeded'를 호출했기 때문에). – Sulthan

+0

@ 설탕 아 그래, 그럴거야. – Kevin

답변

0

출구가 연결되어있다. 보기가 처음 액세스 될 때보기가로드됩니다.

보기를로드하지 않으려면 webVC.lblCategorynil이되어 앱이 다운됩니다. 그것을 해결 중 하나 view 처음에 액세스하려면 :

_ = webVC.view 
webVC.lblCategory.text = ... 

또는 당신은 당신의 뷰 컨트롤러의 문자열 속성을 사용하여 테이블 뷰 didselect에서 문자열 속성을 설정할 수 있습니다 명시 적으로

webVC.loadViewIfNeeded() 
webVC.lblCategory.text = ... 
+0

또 다른 방법은 String 속성을 사용하여 해당 값을 보유하고로드가 완료 될 때 레이블에 설정하는 것입니다. 그것은 언급할만한 가치가있는'prepareForSegue()'에서 사용되는 일반적인 기법입니다. – Larme

+0

여전히 같은 오류가 발생합니다. 또한 lbl은 webVC에 연결됩니다. –

+0

@Larme'prepareForSegue()'를 사용하지 않습니다. –

0

보기를로드합니다. 그런 다음 컨트롤러를 볼 때 레이블 콘센트에 값을 설정할 수 있습니다.

관련 문제