我正在创建UIGestureRecognizer
并将其目标设置为父UIViewController
。 Xcode警告我,动作选择器未声明。
UITapGestureRecognizer *tapTest = [[UITapGestureRecognizer alloc] initWithTarget:self.traverseResponderChainforUIViewController action:@selector(handleTap:)];
Warning: Undeclared selector 'handleTap:'
我的traverseResponderChainforUIViewController
方法返回id可能也值得记录(尽管实现应该最终返回isKindOfClass:[UIViewController class] or nil
):
- (id)traverseResponderChainforUIViewController;
最后......这在运行时完美运行,因为选择器实际上是在目标UIViewController
对象中声明的。
- (void)handleTap:(UIGestureRecognizer *)recognizer
{
NSLog(@"%@", recognizer.description);
}
我可以做些什么来让编译器满意?
我不想更改程序的体系结构(从视图发送到视图控制器的操作),但是我做错了(TM)或者我只是错过了一步一个完全正确的实施?
答案 0 :(得分:0)
试试这个
YourViewControllerClass *vc = (YourViewControllerClass *)self.traverseResponderChainforUIViewController;
UITapGestureRecognizer *tapTest = [[UITapGestureRecognizer alloc] initWithTarget:vc action:@selector(handleTap:)];