2017-02-11 1 views
0

TableViewController에 다음과 같은 segue가 있으며 각 테이블 행에는 Fruit 객체가 있습니다. 각 행의 객체를 행의 객체에 대한 자세한 정보를 표시하는보기 제어기에 전달하려고합니다. 그래서 View Controller 전체에서 Fruit 객체를 전송하기 위해 아래의 segue를 작성했습니다. FruitDescriptionViewController에서스토리 보드를 통해 객체 전달하기

, 나는 그것이 나를 변수 var chosenFruit = Fruit을 정의하고 SEGUE에, 나는 오류가 발생하지 않기 때문에 행에서 개체에 대해 수행 할 변수를 정의하는 방법을 알아낼 수 없었다 cannot pass type Fruit to type Fruit.type

과일 개체를 segue를 통해 전달하고 과일 변수 FruitDescriptionViewController에 저장하는 방법은 무엇입니까?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "FruitDetails" { 
      if let indexPath = tableView.indexPathForSelectedRow { 
       var fruit = fruits[indexPath.row] 
       let controller = segue.destination as? FruitDescriptionViewController 
       controller?.chosenFruit = Fruit(name: fruit.name, url: fruit.url, fruitArray: fruit.fruitArray) 
      } 
     } 

    } 
+1

'var selectedFruit = 과일'은 'var selectedFruit : 과일'이어야합니다. – Callam

답변

3

당신이하려는 것은 정확합니다. 개체를 다음 viewController로 설정할 수 있습니다.

문제는 여기에 관한 문제가 아니지만, 그것이 FruitDescriptionViewController에 있다고 생각합니다.

var chosenFruit = Fruit 

뭘 여기서 뭐하는 변수 chosenFruit에 종류의 과일을 저장 :이 같은 설정 변수를 가지고있다. 그래서 과일 종류의 인스턴스를 선택한 과일을 선택한 과일로 설정하면 cannot pass type Fruit to type Fruit.type이라고 표시됩니다. 변수에 Fruit 유형의 유형이 있으며 인스턴스를 설정하려고합니다. 대신 무엇을해야

는 다음과 같이 choseFruit 변수를 설정하는 것입니다 :

var chosenFruit: Fruit? //or var chosenFruit: Fruit! if its necessary 

이 방법은 VAR의 유형이 올 것입니다.

+0

효과가있었습니다! 고맙습니다! – ch1maera

관련 문제