UIResponder Assistance - метод не вызывается
Я реализовал HandOff с помощью NSUserActivity, изначально я реализовал следующие методы непосредственно в своем классе ViewController, и все работает как положено.
-(void)updateUserActivityState:(NSUserActivity *)userActivity
-(void)restoreUserActivityState:(NSUserActivity *)activity
-(void)userActivityWasContinued:(NSUserActivity *)userActivity
Поскольку я планирую реализовать несколько типов Activity, я подумал, что было бы полезно создать отдельный класс, который бы реализовывал эти методы вместо дублирования аналогичного кода, давайте вызовем этот HandOffClass. Этот класс успешно создает NSUserActivity и присваивает его свойству UserActivity определенного ViewController. Это почти работает, но два из вышеупомянутых методов реализованы UIResponder и не вызываются, когда содержатся в HandOffClass, если реализовано непосредственно в ViewController, все работает как положено.
-(void)updateUserActivityState:(NSUserActivity *)userActivity
-(void)restoreUserActivityState:(NSUserActivity *)activity
Так что моя проблема в том, что я не понимаю, как внедрить / создать подкласс методов UIResponder
@interface HandOffClass : UIResponder <NSUserActivityDelegate>
Мой подход правильный или есть лучший способ приблизиться к этому, я предполагаю, что мой HandOffClass не включен в цепочку респондента?
Спасибо за любую помощь или руководство.
1 ответ
Возможно, вы захотите вставить этот объект в цепочку респондента, чтобы вы были на правильном пути.
попробуйте что-то вроде этого:
id nextResponder = [self nextResponder];
[self setNextResponder: _myCoolHandOffClass];
[_myCoolHandOffClass setNextResponder: nextResponder];
Не забудьте удалить это!
В качестве альтернативы, используйте эти "HandOffClasses", чтобы содержать логику, и просто вызывайте их из своего класса ViewController. Таким образом, у вас будет немного меньше котла (добавление и удаление из цепочки респондента) с возможным недостатком, что ваше событие будет обрабатываться ViewController, даже если вы ничего не делаете.