2016-10-06 5 views
1

저는 신속하게 배우고 있습니다. 2. 새 View Controller에 두드린 셀 (UITableView)의 데이터를 전달하려고합니다. 그러나 나는 끊임없이 다음과 같은 오류를 낳는다 : 코드 라인 "destination!.label.text = valueToPass"에 대해 "unexpectedly found nil while unwrapping an Optional value".
다음은 제 코드입니다.
해결하기 위해 무엇을해야하는지 알 수 있습니까? 나는 몇 시간을 보냈지 만 아직도 그것에 매달렸다. 이렇게함으로써오류 : 선택 값을 언 래핑하는 동안 nil을 발견했습니다. 새로운 컨트롤러에 데이터를 전달하는 동안

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let indexPath = tableView.indexPathForSelectedRow; 
    let Mycell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!; 

    valueToPass = (Mycell.textLabel?.text)! 
    performSegueWithIdentifier("webNext", sender: self) 

     print("\(indexPath!.row)") 

     print(valueToPass) 

    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if (segue.identifier == "webNext") { 
     let destination = segue.destinationViewController as? web___ViewController 
     destination!.label.text = valueToPass 
    } 

} 
+0

은'대상'문제를 일으키는. 'destination' ViewController가 없습니다. 'let destination = segue.destinationViewController as if를 시도해 보라. web___ViewController {}'. 그 블록 안에'destination'은'nil '이되지 않습니다 –

+1

* learning *을위한 두 가지 제안 : 1) 명명 규칙에 익숙해집니다 - 변수와 메소드/함수는 소문자로 시작하고, 클래스, 구조체 및 열거 형은 대문자로 시작합니다 편지와 밑줄없이. 2) ** 절대 ** 표보기 셀 (보기)에서 데이터를 가져오고 데이터 소스 배열 (모델)에서 가져 오지 마십시오 – vadian

답변

3

: destination!.label.text = valueToPass, 당신은 이미 그려 나 발표도하기 전에 레이블 텍스트를 설정합니다.

변수를 사용하여 다음보기로 데이터를 전달하고 그 데이터를 viewDidLoad 안에 표시하십시오.

let destination = segue.destinationViewController as? web___ViewController 

destination!.strValue = valueToPass 

Web_VC!

var strValue:String? 

func viewDidLoad(){ 
    super.viewDidLoad() 

    label.text = strValue! 
} 
+0

이유 및 자세한 코드를 가르쳐 주셔서 감사합니다. 그것은 작동합니다! –

관련 문제