塞维在迅速得到twise电话

时间:2016-05-27 09:31:31

标签: ios swift uitableview segue

我有两个视图控制器一个是 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 接到两次电话我不知道为什么 拜托,任何人都可以帮助我。谢谢你提前

1 个答案:

答案 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。