【问题标题】:Unrecognized selector sent to instance swift. 'NSInvalidArgumentException' Error无法识别的选择器发送到实例 swift。 “NSInvalidArgumentException”错误
【发布时间】:2017-01-23 23:08:35
【问题描述】:
class PopPop: UIViewController {
    var quickVouch = UIView()

    @IBAction func closePopPop (sender: UIButton) {
        self.view.removeFromSuperview()
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.black.withAlphaComponent(0.2)

        quickVouch.frame = CGRect.init(x: 0, y: 0, width: 260, height: 300)
        quickVouch.backgroundColor = UIColor.black
        quickVouch.center = self.view.center
        quickVouch.layer.cornerRadius = 0
        quickVouch.layer.shadowOpacity = 0.0
        quickVouch.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
        self.view.addSubview(quickVouch)

        let btn: UIButton = UIButton(frame: CGRect(x: 100, y: 265, width: 60, height: 30))
        btn.backgroundColor = UIColor.black
        btn.setTitle("Close", for: .normal)
        btn.addTarget(self, action: Selector(("buttonAction:")), for: UIControlEvents.touchUpInside)
        btn.setTitleColor(UIColor.lightGray, for: .normal )
        btn.titleLabel!.font = UIFont(name: "AvenirNextCondensed-Medium", size: 20)!
        quickVouch.addSubview(btn)
    }

不知道为什么我会收到此错误。按下按钮时,应用程序崩溃。代码很新,可能在这里遗漏了一些东西....

func mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker) {

    let PopOverViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopPopID") as! PopPop
    self.addChildViewController(PopOverViewController)
    PopOverViewController.view.frame = CGRect(x: 0, y: -70, width: 1000, height: 1000)
    self.view.addSubview(PopOverViewController.view)
    PopOverViewController.didMove(toParentViewController: self)


}

这是来自主 ViewController 的代码。

【问题讨论】:

  • 无法识别的选择器叫什么名字?
  • 这是说 PopPop 按钮动作。
  • 您的代码中是否有一个名为“PopPop”的方法?您是否将“PopPop”重命名为“closePopPop”并且没有重新连接笔尖中的插座?

标签: swift xcode


【解决方案1】:

我更改了这行代码,现在一切都按计划进行了!

btn.addTarget(self, action: #selector(PopPop.buttonAction(_:)), for: UIControlEvents.touchUpInside)

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 2012-07-16
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多