如何修复发送到实例错误的无法识别的选择器?

时间:2017-02-08 23:49:36

标签: swift function button swift3

在过去的两个小时里,我一直在尝试修复一些相当容易的事情。我的viewcontroller上有6个按钮,我想在点击时更改图像。如果再次点击它们,图像应该变回原始图像(选择/取消选择的想法)。但是,我似乎无法弄清楚,每当我使用下面的代码时崩溃并说明:

CharacteristicsViewController buttonTapped:]:无法识别的选择器发送到实例0x12dd07390

有人可以向我解释一下如何在点击时更改按钮的图像吗?

PS:在下面的代码中我只连接了1个按钮来测试我是否可以使它工作。

import UIKit

class CharacteristicsViewController: UIViewController {


@IBOutlet weak var confidenceButton: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    confidenceButton.setImage(UIImage(named: "confidentnor"), for:   UIControlState.normal)
    confidenceButton.setImage(UIImage(named: "confidenthigh"), for: UIControlState.selected)
    confidenceButton.addTarget(self, action: Selector(("buttonTapped:")), for: UIControlEvents.touchUpInside)

    }

func buttonTapped(sender:UIButton)
{
    sender.isSelected = !sender.isSelected;
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()


}

}

1 个答案:

答案 0 :(得分:3)

你正在做的事情没问题,选择器设置正确。

错误是该按钮无法找到选择器在类中指示的方法,尤其是buttonTapped方法。

问题是该方法嵌套在viewDidLoad中。将它移到课堂外,它应该可以工作!

尝试设置按钮目标,如下所示:

button.addTarget(self, action: #selector(testFunc), for: .touchUpInside)

}

func buttonTapped()
{
    sender.isSelected = !sender.isSelected;
}