Обработка событий WKInterfaceButton в WKInterfaceTable
У меня есть WKInterfaceTable
вид таблицы с WKInterfaceButton
,
Как добавить целевое действие к кнопке из табличного представления. Поскольку нет свойства тега, я не могу его обработать.
1 ответ
Решение
Если твой WKInterfaceButton
содержится в контроллере строк, вот один метод, чтобы определить, какая кнопка строки была нажата:
- Добавьте свой
WKInterfaceButton
к контроллеру строки и использовать конструктор интерфейса для подключения действия кнопки к классу контроллера строки - Добавьте свойство в свой контроллер строк, которое позволит вам ссылаться на ваши данные (например, слабая ссылка на ваши данные или тег)
- Добавьте свойство к вашему контроллеру строки, которое позволяет вам устанавливать свой интерфейсный контроллер как делегат
- Создайте протокол для делегата, который позволяет передавать ссылку на данные
- При инициализации каждого контроллера строки обязательно установите данные и делегируйте свойства
Когда действие кнопки обрабатывается в контроллере строки, вызовите метод делегата, который вы определили в своем протоколе. Что-то вроде:
- (void)rowController:(MyRowControllerClass *)rowController didSelectRowWithTag:(NSInteger)tag
Обработайте этот метод делегата в вашем контроллере интерфейса, чтобы выполнить любую необходимую работу.
Я использую эту технику в своем собственном приложении Watch, и она работает очень хорошо.