Обработка событий WKInterfaceButton в WKInterfaceTable

У меня есть WKInterfaceTable вид таблицы с WKInterfaceButton,

Как добавить целевое действие к кнопке из табличного представления. Поскольку нет свойства тега, я не могу его обработать.

1 ответ

Решение

Если твой WKInterfaceButton содержится в контроллере строк, вот один метод, чтобы определить, какая кнопка строки была нажата:

  • Добавьте свой WKInterfaceButton к контроллеру строки и использовать конструктор интерфейса для подключения действия кнопки к классу контроллера строки
  • Добавьте свойство в свой контроллер строк, которое позволит вам ссылаться на ваши данные (например, слабая ссылка на ваши данные или тег)
  • Добавьте свойство к вашему контроллеру строки, которое позволяет вам устанавливать свой интерфейсный контроллер как делегат
  • Создайте протокол для делегата, который позволяет передавать ссылку на данные
  • При инициализации каждого контроллера строки обязательно установите данные и делегируйте свойства
  • Когда действие кнопки обрабатывается в контроллере строки, вызовите метод делегата, который вы определили в своем протоколе. Что-то вроде:

    - (void)rowController:(MyRowControllerClass *)rowController didSelectRowWithTag:(NSInteger)tag

  • Обработайте этот метод делегата в вашем контроллере интерфейса, чтобы выполнить любую необходимую работу.

Я использую эту технику в своем собственном приложении Watch, и она работает очень хорошо.

Другие вопросы по тегам