2017-02-11 3 views
0

У меня есть следующий segue в TableViewController, и каждая строка таблицы имеет объект Fruit. Я хочу передать объект каждой строки контроллеру представления, который показывает более подробную информацию об объекте в строке, поэтому я написал segue ниже, чтобы передать объект Fruit через контроллеры представлений.Передача объекта через раскадровку Segue

В FruitDescriptionViewController, я не мог понять, как определить переменную, которая будет принимать на объект из строки, потому что он не будет препятствовать мне определить переменную var chosenFruit = Fruit и в Segue, я получаю ошибку cannot pass type Fruit to type Fruit.type

Как я могу проехать объект Fruit через segue и сохранить его в переменной Fruit в 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 = Fruit' должно быть' var selectedFruit: Fruit? ' – Callam

ответ

3

То, что вы пытаетесь сделать, это правильно, вы можете установить объект к следующему ViewController в Segue.

Проблема здесь не в segue, но я считаю, что она находится в FruitDescriptionViewController. У вас есть набор переменных, как это:

var chosenFruit = Fruit 

Что вы делаете здесь спасительный тип фруктов переменной chosenFruit. Вот почему, когда вы пытаетесь установить экземпляр типа Fruit на selectedFruit, он говорит cannot pass type Fruit to type Fruit.type. Переменная имеет тип типа Fruit, и вы пытаетесь установить экземпляр.

Что вы должны сделать вместо этого установив переменную choseFruit как:

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

Таким образом, тип вар будет правильным.

+0

Это сработало! Спасибо! – ch1maera

Смежные вопросы