ios - 未从自定义 uitableviewcell 调用 prepareForSegue

标签 ios uitableview swift

我有一个带有自定义 TableViewCell 的自定义 TableViewController。我在 Storyboard上创建了一个从 Cell 到另一个 ViewController 的 segue 以显示详细信息,但从未调用过 prepareForSegue。我试过使用 didSelectRowAtIndexPath 但它也没有被调用。我怀疑这可能是因为我动态创建了自定义单元格并且它们没有从分配给它们的 Storyboard 中获取 segue,但我找不到这样做的方法。我的 BarButtonItem 中的“newSegue”被正常调用。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    println("PREPARE FOR SEGUE")
    if segue.identifier == "newSegue" {
        println("PREPARE FOR NEW SEGUE")
    } else if segue.identifier == "detailSegue" {
        println("PREPARE FOR DETAIL SEGUE")
    }
}

override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    println("You selected cell!")
}

我怀疑我在定义自定义单元格时可能做错了什么:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let CellIndentifier: NSString = "ListPrototypeCell"

    var cell : MyTableViewCell = tableView.dequeueReusableCellWithIdentifier(CellIndentifier) as MyTableViewCell

    var myClass: MyClass = self.myList.objectAtIndex(indexPath.row) as MyClass

    cell.setCell(author: myClass.author, message: myClass.message)

    return cell

}

有什么帮助吗?

最佳答案

从 InterfaceBuilder 中的 TableViewController 中拖动 segue,而不是从单元格中。然后,您可以通过 performSegueWithIdentifier 使用其在 didSelectRowAtIndexPath 中的标识符执行 segue。

同时检查函数签名。不再需要隐式解包选项的感叹号:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let cell = tableView.cellForRowAtIndexPath(indexPath)
    tableView.deselectRowAtIndexPath(indexPath, animated: true)
    performSegueWithIdentifier("mySegue", sender: cell)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
}

关于ios - 未从自定义 uitableviewcell 调用 prepareForSegue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26236975/

相关文章:

android - 关于跨平台项目中 Web 语言互操作性的问题

ios - UICollectionViewFlowLayout 中有多个补充 View ?

swift - Xcode 8.2.1 不显示自动完成的文档描述

ios - 将 SwiftUI View 覆盖在所有其他 View (包括工作表)上

ios - Swift 中的 NSTextStorage 子类不更新 UITextView

iphone - 尽管有缓存 header ,如何在 AFNetworking 中强制执行缓存

ios - Swift - 在编辑模式下更改表格单元格背景

ios - 如何修复似乎不影响自定义 UITableViewCell 布局的奇怪 NSLayoutConstraint 错误

ios - 我正在尝试在选择行时向 tableview 单元格中的 UIStackView 添加对象和删除对象 - 它只工作一次

ios - Swift iOS - 循环运行速度是否比 Date().timeIntervalSince1970 生成的日期秒快