我应该在UITableViewDelegate中将按钮的操作放在何处

时间:2015-12-22 14:59:38

标签: ios swift uitableview

我有一个自定义的UITableViewDelegate,如下所示

class CusinePreferencesTableView: NSObject, UITableViewDelegate, UITableViewDataSource {

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(CellIdentefiers.oneCusinePreferencesCell.rawValue, forIndexPath: indexPath) as! OneCusinePreferencesTableViewCell
//do bla bla bla with the cell
        cell.leftButton.addTarget(self, action: "cusineClicked:", forControlEvents: .TouchDown)
        cell.rightButton.addTarget(self, action: "cusineClicked:", forControlEvents: .TouchDown)
        cell.setNeedsDisplay()
        return cell
    }

我的手机有两个按钮,如您所见,我为他们设置了动作。

我获得了unrecognized selector sent to instance 0x7fa660ecbfa0

的异常状态

我试着把

func buttonClicked(sender: PreferenceButton){
        // do bla bla bla
    }

CusinePreferencesTableView和UIViewController里面,它有一个UITableView的出口,并且使用CusinePreferencesTableView作为它的委托,但我保留了它的异常

请帮助

1 个答案:

答案 0 :(得分:3)

CusinePreferencesTableView添加按钮的操作

func cusineClicked(sender: PreferenceButton){
        print("action triggered")
    }

将目标添加到按钮时设置的操作名称与您在类中实际实现的操作(不同名称)不同。