无法识别的选择器发送到实例 - tableviewcontroller中的函数,自定义单元格中的按钮

时间:2015-04-16 18:48:00

标签: ios swift

我在同一个文件中有一个带有CustomCell类定义的TableViewController。在Interface Builder中,我有一个单元格,其中包含用于上传图片的按钮。现在,按钮的动作在TableViewController的类中。

当我按下按钮时,我收到错误:

[ProfileViewController uploadProfilePicture:]: unrecognized selector sent to instance

我的猜测是按钮的功能在ViewController中而不是Cell中处理,但是当我在CustomCell中尝试这样做时,它变得非常令人头疼(委托/协议的东西)一个小壮举。

有谁知道减轻这种情况的最佳方法?

以下是参考函数:

@IBAction func uploadPicture(sender: UIButton) {

    picker?.delegate = self

    var alert:UIAlertController=UIAlertController(title: "Choose Image", message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)

    var cameraAction = UIAlertAction(title: "Camera", style: UIAlertActionStyle.Default)
        {
            UIAlertAction in
            self.openCamera()

    }
    var galleryAction = UIAlertAction(title: "Gallery", style: UIAlertActionStyle.Default)
        {
            UIAlertAction in
            self.openGallery()
    }
    var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel)
        {
            UIAlertAction in

    }
    // Add the actions
    alert.addAction(cameraAction)
    alert.addAction(galleryAction)
    alert.addAction(cancelAction)

    // Present the actionsheet
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone
    {
        self.presentViewController(alert, animated: true, completion: nil)
    }
    else
    {
        popover=UIPopoverController(contentViewController: alert)
        popover!.presentPopoverFromBarButtonItem(self.saveButton, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
    }
}

2 个答案:

答案 0 :(得分:1)

当您收到错误时,它所说的方法名称不存在uploadProfilePicture。但是,您的代码会显示名为uploadPicture的方法。

答案 1 :(得分:0)

问题在于uploadPictureuploadProfilePicture的名称不同。