【发布时间】:2016-12-21 16:28:46
【问题描述】:
有 4 个视图控制器: 竞赛视图控制器 种族信息视图控制器 能力计算器视图控制器 能力最终视图控制器
快速概览应用程序的工作原理。首先,用户从abilityCalcViewController 开始,他们更新他们的统计数据,然后在完成后点击选择比赛按钮,然后转到raceViewController。这里有 2 个按钮 1 通向raceInfoViewController,另一个通向abilityFinalViewController。每个不同的视图控制器都有自己的一组信息在 ViewController 之间传递。
我的代码是:
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。 -
我厌倦了只做一个简单的打印,看看控制台说什么。什么都没有打印。你指的是这个吗?
-
请edit 用您的打印语句及其输出回答。
-
您确定标识符是正确的并且与故事板中的 id 名称匹配吗?
-
shallowThought 更新了 Gabriel 我不确定在哪里实际检查...我正在自学所有这些...
标签: ios swift uiviewcontroller segue