gpt4 book ai didi

ios - 自定义 UITableViewCell 中的按钮 Segue

转载 作者:可可西里 更新时间:2023-11-01 01:00:41 24 4
gpt4 key购买 nike

我有一个自定义的 UITableViewCell,里面有一个按钮,可以将数据传送到另一个 viewController。这是通过利用

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

//cell setup code

cell.button.tag = indexPath.row
cell.button.addTarget(self, action: "editRow", forControlEvents: .TouchUpInside)

return cell
}

然后使用函数

func editRow() {
self.performSegueWithIdentifier("editRow", sender: self)
}

editRow 转场是 Storyboard转场。

问题...不是执行 segue 和传递数据,而是触发 segue 两次并且不将任何数据传输到“SLEdit”viewController。关于为什么会发生这种情况的任何想法?请记住,由于开始学习 swift,我对 objective-c 不是很熟悉。如果您需要任何进一步的信息或更多代码,请告诉我。谢谢!

编辑:

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

if segue.identifier == "editRow" {

let cell = sender as! SLTableViewCell
let indexPath = tableView.indexPathForCell(cell)
let SListController:SLEdit = segue.destinationViewController as! SLEdit
let items:SList = frc.objectAtIndexPath(indexPath!) as! SList
SListController.item = items
}
}

最佳答案

这是因为您已经在 Storyboard 编辑器中执行了 segue 操作,并且您通过为按钮分配自定义操作再次调用相同的 segue。

要将数据传递给下一个 View Controller ,请使用此方法:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!){
if segue.identifier == "segueIdentifier" {

}
}

编辑 1:

错误:“Could not cast value of type UIButton”是由于这一行:

let cell = sender as! SLTableViewCell

发送器 UIButton 和您正在转换/分配(任何合适的术语)到 TableViewCell

编辑 3:

用这个替换你的代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!{

if segue.identifier == "editRow" {
let button = sender as! UIButton
let view = button.superview!
let cell = view.superview as! <Your custom cell name here>

let indexPath = itemTable.indexPathForCell(cell)

let SListController:SLEdit = segue.destinationViewController as! SLEdit
let items:SList = frc.objectAtIndexPath(indexPath) as! SList
SListController.item = items
}
}

关于ios - 自定义 UITableViewCell 中的按钮 Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34760457/

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