2014-10-11 90 views
0

我知道這將是一件非常愚蠢的事情,但我一直試圖找出它現在2天,所以我承認失敗。NSInvalidArgumentException - 無法識別的選擇器發送到實例

我試圖在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' 

它是一個普通的視圖控制器,具有導航欄添加到視圖。我實例化這個手勢識別器在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的,其委託設置爲查看。我也嘗試了使用和不使用(id)發件人的方法。

非常感謝

等離子

+0

的這裏的問題是,你的目標設定爲導航欄本身。將目標設置爲您的視圖控制器,它應該沒問題。 – Sandeep 2014-10-11 12:20:47

回答

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

現在我感覺真的很蠢!非常感謝你,我知道這會變得很簡單,我已經搞砸了。如果它在另一個項目中工作,但也使用Nav Controller。 :) – Plasma 2014-10-11 12:24:00

相關問題