2012-12-02 39 views
2

我已經使用IB向現有的iPad應用程序添加了UIToolBar。然後使用IB將它連接到視圖控制器,並驗證連接是否存在。但是,當我單擊按鈕時,視圖控制器中的相應代碼不會執行。UIToolBar BarButtonItem IBAction不起作用

我打開了一個空的項目,並按照相同的過程,並且一切按預期工作。

我很好奇,如果有什麼可以在我現有的項目是阻止正在執行的IBAction爲代碼不同的任何想法?

我正在使用XCode 4.5.2和iOS 6.0(模擬器)進行開發。

任何想法都很讚賞,因爲我真的很困惑!

+1

我一樣的問題。事實證明,我在包含工具欄和barbutton項目的視圖中使用了UITapGestureRecognizer。 UITapGestureRecognizer(單擊)與BarButtomItem操作衝突。它看起來工具欄支持gestureRecognizers,這導致行動無法正常工作。不知道這是否是你的問題,但它糾正了我的問題。 – casillic

回答

3

正如評論中提到的那樣,我遇到了這個問題,這是由於UITapGestureRecognizer我用它來監聽用戶點擊背景的時候,所以如果用戶正在編輯字段,我可以關閉鍵盤。

UITapGestureRecognizer與工具欄衝突,並導致代碼不被執行時,選擇了一個工具欄項目 - 而是(在我的情況下)它運行我的監聽器中的「解除鍵盤」代碼爲選項卡手勢。

要解決這個問題,我說我的手勢識別器爲文本輸入,而不是主要包含視圖住房UIScrollView的。

如:

更換此:

[self.view addGestureRecognizer:tap]; 

與此:

[scrollView addGestureRecognizer:tap]; 

(滾動視圖被安裝成一個IBOutlet的UIScrollView的我的故事板)