ios - NSInvalidArgumentException - 无法识别的选择器发送到实例

标签 ios objective-c iphone uinavigationbar uigesturerecognizer

我知道这将是一件非常愚蠢的事情,但我已经尝试了 2 天,所以我承认失败了。

我正在尝试在 NavBar 上实现双击手势识别器。但是,当双击它时,我会遇到以下崩溃....

2014-10-11 13:05:01.317 Gesture[4811:152609] -[UINavigationBar navigationBarDoubleTap:]: unrecognized selector sent to instance 0x78818150
2014-10-11 13:05:01.321 Gesture[4811:152609] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationBar navigationBarDoubleTap:]: unrecognized selector sent to instance 0x78818150'

它是一个普通的 View Controller ,在 View 中添加了一个导航栏。我在 ViewDidLoad 中用这个实例化手势识别器 ...

.h
IBOutlet UINavigationBar    *navBar;
UITapGestureRecognizer      *tapRecon;

.m (viewDidLoad)
//Add double tap gesture to Navbar For Auto Refresh
tapRecon = [[UITapGestureRecognizer alloc]
            initWithTarget:navBar action:@selector(navigationBarDoubleTap:)];
tapRecon.numberOfTapsRequired = 2;
[navBar addGestureRecognizer:tapRecon];

DoubleTap 方法是

(void)navigationBarDoubleTap :(id) sender {
    NSLog(@"Sender: %@", sender);
}

我已将导航栏连接到我的 UINavigationBar,并将其委托(delegate)设置为 View 。我也尝试过使用和不使用 (id)sender 的方法。

非常感谢

等 ionic

最佳答案

tapRecon = [[UITapGestureRecognizer alloc]
            initWithTarget:self action:@selector(navigationBarDoubleTap:)];
tapRecon.numberOfTapsRequired = 2;
[navBar addGestureRecognizer:tapRecon];

关于ios - NSInvalidArgumentException - 无法识别的选择器发送到实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314558/

相关文章:

ios - SwiftyJSON 对象返回字符串

iOS 11.4 组件不在 Xcode 9.4 的列表中

ios - heightForRowAtIndexPath 设置错误行的高度

iphone - NSURLConnection 没有响应

iphone - ViewController - 如何正确使用它?

ios - 线程 1 : Signal sigabrt. 不知道如何解决这个问题

ios - 如何按字母顺序将 NSArray 拆分为 UITableView 部分

objective-c - 如何从地址簿中获取电话号码作为字符串?

iphone - NSURLConnection 在 UITableView 滚动之前不是 "firing"

iphone - +[NSNumber numberWithUnsignedInteger :] Literal?