Я вызываю метод из моего класса DrawMenu
в моем классе ViewController
, который рисует овальную (в настоящее время круг) кнопку, довольно просто. Он отлично рисует кнопку, но если я нажимаю кнопку, она сработает.EXC_BAD_ACCESS, когда метод кнопки вызова из другого класса
Это происходит несмотря на то, что я создал экземпляр класса ViewController
в DrawMenu
, и использовал его для параметра «целевого» в «button.addTarget»
Вот код:
Кнопки Метод определен в DrawMenu
классе:
func drawButton (superImageView: UIImageView, x_of_origin: CGFloat, y_of_origin: CGFloat, width_of_oval: CGFloat, height_of_oval: CGFloat, actionSelector: Selector, want_to_test_bounds:Bool) {
var VC = ViewController()
var button = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
button.addTarget(VC, action: actionSelector, forControlEvents: UIControlEvents.TouchUpInside)
button.frame = CGRect(x: x_of_origin, y: y_of_origin, width: width_of_oval, height: height_of_oval)
button.clipsToBounds = true
button.layer.cornerRadius = height_of_oval/2.0
if (want_to_test_bounds == true) {
button.layer.borderColor = UIColor.blackColor().CGColor
button.layer.borderWidth = 1.0
superImageView.userInteractionEnabled = true
superImageView.addSubview(button)
} else {
superImageView.userInteractionEnabled = true
superImageView.addSubview(button)
}
}
метод, называемый в ViewController
классе:
override func viewDidLoad() {
super.viewDidLoad()
var drawMenu = DrawMenu()
drawMenu.drawButton(imageView, x_of_origin: 100, y_of_origin: 150, width_of_oval: 100, height_of_oval: 100, actionSelector: "buttonTap:" as Selector, want_to_test_bounds: true)
}
buttonTap
также в ViewController
классе:
func buttonTap(sender:UIButton!){
println("Button is working")
}
Любая помощь приветствуется. Thank You
Что такое сообщение об аварии/исключении? – Paulw11
Ваш drawButton устанавливает новый экземпляр вашего ViewController в качестве цели. Вам необходимо передать существующий ViewController в качестве параметра drawButton, чтобы он мог быть целевым – Paulw11
Он сбой в делетете приложения с помощью 'Thead 1: EXC_BAD_ACCESS (code = EXC_1386_GPFLT) .' – user2176152