gpt4 book ai didi

ios - 未从自定义 uitableviewcell 调用 prepareForSegue

转载 作者:搜寻专家 更新时间:2023-10-31 08:03:30 25 4
gpt4 key购买 nike

我有一个带有自定义 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com