Есть 4 вида контроллеры: raceViewController raceInfoViewController abilityCalcViewController abilityFinalViewControllerготовят к выпуску SEGUE с несколько ViewControllers Не 100% работает
Краткий обзор, как приложение работает. Сначала пользователь запускается в свойствеCalcViewController, они обновляют свою статистику, а затем, когда это делается, они нажимают кнопку «Выбрать гонки», которая затем переходит в raceViewController. Здесь есть две кнопки 1, ведущие к raceInfoViewController, а другая - к функцииFinalViewController. Каждый из них будет иметь свой собственный набор информации для передачи между ViewControllers.
Код, который у меня есть:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "abilityFinalViewController"
{
let destFinalViewController: abilityFinalViewController = segue.destination as! abilityFinalViewController
destFinalViewController.strStatScore = strStatScore
}
else if segue.identifier == "raceInfoViewController"
{
let destViewController: raceInfoViewController = segue.destination as! raceInfoViewController
// Dwarf
if raceTable.indexPathForSelectedRow == [0,0]
{
print(raceTable.indexPathForSelectedRow ?? 0)
destViewController.raceName = races[0]
destViewController.raceStat = stats[0]
}
// Elf
else if raceTable.indexPathForSelectedRow == [0,1]
{
destViewController.raceName = races[1]
destViewController.raceStat = stats[1]
}
// Gnome
else if raceTable.indexPathForSelectedRow == [0,2]
{
destViewController.raceName = races[2]
destViewController.raceStat = stats[2]
}
// Half Elf
else if raceTable.indexPathForSelectedRow == [0,3]
{
destViewController.raceName = races[3]
destViewController.raceStat = stats[3]
}
// Half-Orc
else if raceTable.indexPathForSelectedRow == [0,4]
{
destViewController.raceName = races[4]
destViewController.raceStat = stats[4]
}
// Halfling
else if raceTable.indexPathForSelectedRow == [0,5]
{
destViewController.raceName = races[5]
destViewController.raceStat = stats[5]
}
// Human
else if raceTable.indexPathForSelectedRow == [0,6]
{
destViewController.raceName = races[6]
destViewController.raceStat = stats[6]
}
// Ifrit
else if raceTable.indexPathForSelectedRow == [0,7]
{
destViewController.raceName = races[7]
destViewController.raceStat = stats[7]
}
// Oread
else if raceTable.indexPathForSelectedRow == [0,8]
{
destViewController.raceName = races[8]
destViewController.raceStat = stats[8]
}
// Sylph
else if raceTable.indexPathForSelectedRow == [0,9]
{
destViewController.raceName = races[9]
destViewController.raceStat = stats[9]
}
// Tengu
else if raceTable.indexPathForSelectedRow == [0,10]
{
destViewController.raceName = races[10]
destViewController.raceStat = stats[10]
}
// Undine
else if raceTable.indexPathForSelectedRow == [0,11]
{
destViewController.raceName = races[11]
destViewController.raceStat = stats[11]
}
}
}
Мой вопрос, когда я нажимаю на кнопку, которая приводит к abilityFinalViewController или кнопку собирается raceInfoViewController он переходит, но тогда ни один из данных не передается. Таким образом, destFinalViewController.strStatScore = strStatScore
кажется пустым, когда он добирается до следующих пунктов назначения. Что мне не хватает?
Я подозреваю, что он не входит ни в один из ваших 'if raceTable.indexPathForSelectedRow' случаев. Перерыв и проверка 'raceTable.indexPathForSelectedRow'. – shallowThought
Я устал, просто делаю простой отпечаток и вижу, что говорит консоль. Ничего не печатает. Это то, о чем вы говорите? – Micheal
Plese [edit] (http://stackoverflow.com/posts/41267524/edit) ответ с вашим заявлением на печать и его выходом. – shallowThought