UITableView 不使用 Cell 作为发送者 [英] UITableView Not Using Cell as Sender

查看:34
本文介绍了UITableView 不使用 Cell 作为发送者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试转接和传递数据(从 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

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 而不是 UITableViewCellIndividualAchievementsViewController.在故事板中检查并使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆