Определите, какая кнопка UIB нажата без использования тега или атрибута имени - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть несколько кнопок, которые создаются программно, когда пользователи хотят создать новую кнопку.Кнопка может быть отредактирована, и чтобы определить, какая из них нажата, я использую свойство UIButton tag, которое затем передается через словарь, если значение тега соответствует одному сохраненному.

Я знаю, что смогутакже определите, какая кнопка нажата, используя имя кнопки, но могут быть дублированные имена кнопок.

Есть ли другой способ?Мне просто интересно, делаю ли я это наилучшим образом, используя UIButton s tag.Я создаю UUID, когда создается каждая кнопка.Можно ли это как-то использовать?

1 Ответ

0 голосов
/ 05 февраля 2019

Paulw11 дал мне идею простого создания пользовательской кнопки UI.При создании кнопки вместо UIButton я использую CustomBtn.

Когда создается кнопка, UUID назначается для customBtn.UUID, который затем сохраняется в моей базе данных.Затем я использую фильтр для сравнения тега CustomBtn.UUID с теми, которые были сохранены при нажатии кнопки.Этот обход должен использовать UIbutton.tag при необходимости.

@IBAction func mainButton(sender: CustomBtn){
if let button = buttonPlist.arrayObjects.filter({$0.UUIDbtn == sender.UUIDtag}).first {

//ACTION to be implemented
  }
}

class CustomBtn: UIButton {
var UUIDtag: UUID?
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...