我有两个视图控制器一个是 ScheduleController ,另一个是 EditShiftController 。在 ScheduleController 中,我的表视图名称是 scheduleTable 。在 scheduleTable 中,我有一个标识符 ScheduleWithData 的单元格。在这个单元格中,我有两个不同的按钮按钮编辑和按钮删除。我已将编辑按钮与 EditShiftController 直接连接到segue 标识符 editShiftSegue 。
TableViewCell.swift
的代码var editShiftClick: (() -> Void)? = nil
@IBAction func editShiftBtn(sender: AnyObject) {
if let onButtonTapped = self.editShiftClick {
onButtonTapped()
}
}
ScheduleController.swift
的代码myCell!.editShiftClick = {
self.performSegueWithIdentifier("editShiftSegue", sender: dataTemp[indexPath.row].id)
}
ScheduleController.swift
中prepareSegue的功能override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "editShiftSegue") {
print("senderIndexPath=\(sender)")
if (sender != nil) {
let svc = segue.destinationViewController as! EditShiftViewController;
svc.label = String(sender)
}
}
}
Segue的镜头 enter image description here
当我点击EDIT按钮然后 EditShiftController 接到两次电话我不知道为什么 拜托,任何人都可以帮助我。谢谢你提前
答案 0 :(得分:1)
myCell!.editShiftClick = {
//self.performSegueWithIdentifier("editShiftSegue", sender: dataTemp[indexPath.row].id)
}
评论self.performSegueWithIdentifier("editShiftSegue", sender: dataTemp[indexPath.row].id)
这一行,因为如果你直接用segue连接编辑按钮,那么也不需要以编程方式执行!
<强>更新强>
myCell!.editShiftClick = {
self.performSegueWithIdentifier("editShiftSegue", sender: self)
}
不要评论该行并删除从编辑按钮提供的segue。从viewcontroller to viewcontroller
给出segue并给出标识符editShiftSegue
,然后按照上面的代码执行segue。