私はセグを行い、データを(UITableViewからUIViewControllerに)渡そうとしています。私のコードはUITableViewが送信側としてセルを使用していません
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "IndividualAchievementsSegue" {
let destination = segue.destinationViewController as? IndividualAchievementsViewController
let cell = sender as! UITableViewCell
let selectedRow = AchievementsTable.indexPathForCell(cell)!.row
destination!.viaSegue = achievements[selectedRow]
print(selectedRow)
}
}
ですが、let cell = sender as! UITableViewCellのは
を投げている型の値に 'ProgramName.AchievementsViewController' にキャストできませんでした 'のUITableViewCell' 私もそれはオプションをアンラップnilを見つけたので、失敗し
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "IndividualAchievementsSegue" { let destination = segue.destinationViewController as? IndividualAchievementsViewController let selectedRow = AchievementsTable.indexPathForSelectedRow!.row destination!.viaSegue = achievements[selectedRow] print(selectedRow) } }
を試してみました
achievements[selectedRow]
の間にそれは明らかに私に無しを与えますlet selectedRow = AchievementsTable.indexPathForSelectedRow!.row
私はあなたが正しいと思いますが、奇妙なことに、クリックしてプロトタイプのセルからIndividualAchievementsViewControllerにドラッグしてセグを作成しました。しかし、私が調べると、側面の接続点にマウスをかざすと、View Controller全体が選択されます。 TableCellをIndividualAchievementsViewControllerに接続するトリックはありますか? – Nick
最初にその古いセグを削除してください。その後、ビュー階層で 'TableCell'を選択して' ctrl'を押して 'IndividualAchievementsViewController'にドラッグしてください。 –
いいえ、同じエラー – Nick