UITableView 不使用 Cell 作为发送者 [英] UITableView Not Using Cell as Sender
问题描述
我正在尝试转接和传递数据(从 UITableView 到 UIViewController).我的代码是
I'm trying to segue and pass data (from UITableView to a UIViewController). My code is
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 正在抛出
but the line let cell = sender as! UITableViewCell is throwing
无法将ProgramName.AchievementsViewController"类型的值转换为UITableViewCell"
Could not cast value of type 'ProgramName.AchievementsViewController' to '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)
}
}
这失败了,因为它在 achievements[selectedRow]
期间发现 nil 解开可选项,因为这显然给了我一个来自 let selectedRow = AchievementsTable.indexPathForSelectedRow!.row
的 nil>
That fails because it finds nil unwrapping the optional during achievements[selectedRow]
since that apparently gives me a nil from let selectedRow = AchievementsTable.indexPathForSelectedRow!.row
推荐答案
我认为问题是你的 segue 与你的 AchievementsViewController
连接到 IndividualAchievementsViewController
而不是 UITableViewCell
到 IndividualAchievementsViewController
.在故事板中检查并使用 TableCell
更正 segue 到 IndividualAchievementsViewController
.
I think the problem is that your segue is connected with your AchievementsViewController
to IndividualAchievementsViewController
instead of UITableViewCell
to IndividualAchievementsViewController
. Check in the storyboard for that and correct the segue with TableCell
to IndividualAchievementsViewController
.
这篇关于UITableView 不使用 Cell 作为发送者的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!