В настоящее время я работаю над приложением, которое помещает данные API в табличное представление, а затем просматривает данные в detailsViewController.
Мой код выглядит примерно мне, и я начинаю задумываться, может быть, вся информация должнабыть в табличном представлении для меня, чтобы передать данные на другой контроллер.Можно ли передать данные другому контроллеру без необходимости помещать всю информацию в ячейку табличного представления?
РЕДАКТИРОВАТЬ: Если бы я должен был получать данные в моем detailsViewController из массива fetchedSpell, как бы я дал знать detailsViewController знатькакие данные показывать на основе выбранной ячейки?
Я уже пытался передать ее, но в контроллере сведений ничего не отображается, когда я нажимаю на ячейку.
Выбор вида таблицы
func tableView(_ tableView: UITableView, didSelectRowAt indexPath:
IndexPath) {
let storyBoard: UIStoryboard = UIStoryboard(name:"Main",
bundle: nil)
let SpellDetailsViewController =
storyBoard.instantiateViewController(withIdentifier:
"SpellDetailsViewController") as! SpellDetailsViewController
let detail = fetchedSpell[indexPath.row]
SpellDetailsViewController.spellText = detail.spell
SpellDetailsViewController.effectText = detail.effects
SpellDetailsViewController.typeText = detail.types
self.present(SpellDetailsViewController, animated: true,
completion: nil)
}
Контроллер деталей заклинаний
class SpellDetailsViewController: UIViewController,
UINavigationControllerDelegate {
@IBOutlet weak var spellLabel: UILabel!
@IBOutlet weak var typeLabel: UILabel!
@IBOutlet weak var effectLabel: UILabel!
var spellText: String!
var typeText: String!
var effectText : String!
override func viewDidLoad() {
super.viewDidLoad()
spellLabel.text = spellText
typeLabel.text = typeText
effectLabel.text = effectText
}