Я создаю класс пера:
import UIKit
class AlertController: UIView {
@IBOutlet weak var back: UIView!
@IBOutlet weak var viewMain: UIView!
class func createAlert() -> AlertController {
let myNib = UINib(nibName: "Alert", bundle: nil)
let nib = myNib.instantiate(withOwner: nil, options: nil)[0] as! AlertController
nib.back.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleBack(sender:))))
return nib
}
@objc func handleBack(sender: UITapGestureRecognizer) {
//viewMain.isHidden = true
print("LogIos => X")
}
}
И использую его в другом классе:
let view = AlertController.createAlert()
viewMain.addSubview(view)
Это прекрасно работает, но если я нажимаю back button
, я получаю ошибку ниже:
2018-06-13 12: 28: 03.958448 + 0430 Mat [50493: 243526] *** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «+ [Mat.AlertController handleBackWithSender:]: нераспознанный селектор отправлен в класс 0x104db4e90 '
Но если я использую приведенный ниже код, все работает нормально:
@IBAction func xxx(_ sender: Any) {
print("LogIos => Y")
}
Я хочу использовать UITapGestureRecognizer
, потому что я использую View
дляпользовательская кнопка