Имя метода изменяется в инспекторе соединений раскадровки
Я создал метод для кнопки, используя Swift 2.3
в Xcode 8
, скажем
@IBAction func testAction(sender: UIButton) {
print("\(sender.tag)");
}
но в Connections inspector
редактора раскадровки это показывает как testActionWithSender:
Я знаю, что это неправильное имя метода, но у меня нет проблем с этим, пока он не завершится с
[TestProject.ViewController testActionWithSender:]: нераспознанный селектор отправлен в экземпляр 0x7ff3f3e050e0
на кнопке нажмите.
Так почему же имя метода меняется в Connections inspector
и как мне это исправить?
2 ответа
Используя этот обходной путь, вы можете добавить существующее действие, а также подключить несколько кнопок к одному действию.
Я думаю, что есть ошибка в Xcode8. Вы можете добавить несколько / одну кнопку к одному действию / функции, изменив sender
в _ sender
например:- Обычная кнопка
@IBAction func huu(sender: UIButton) {
}
Вы не можете добавить несколько кнопок или одну кнопку к этому действию, вам нужно просто изменить это, а затем вы можете добавить несколько кнопок с помощью перетаскивания и подключения из раскадровки.
@IBAction func huu(_ sender: UIButton) {
}
После подключения IBOutlets Xcode отобразит следующее предупреждение:
Чтобы удалить это предупреждение, просто удалите _
знак от действия / функции. Убедитесь, что удалить _
после подключения вашего IBOutlets
Надеюсь, что это поможет вам!:)
Я столкнулся с той же проблемой. Единственный обходной путь, который я нашел, - это удалить соединение и перетащить действие кнопки в новый метод Action.
Если вы связываете свою кнопку с существующей, она падает