【发布时间】:2016-08-25 05:24:30
【问题描述】:
我正在尝试 segue 和传递数据(从 UITableView 到 UIViewController)。我的代码是
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”
我也试过了
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)
}
}
这失败了,因为它发现 nil 在 achievements[selectedRow] 期间解包可选,因为这显然给了我来自 let selectedRow = AchievementsTable.indexPathForSelectedRow!.row 的 nil
【问题讨论】:
标签: ios uitableview