2009-06-22 81 views
3

我有一個非常簡單的UIViewController。它使用Interaface Builder中創建的視圖進行初始化,該視圖僅包含UIImageView。當用戶觸摸屏幕時,我想要調用UIViewController的touchesBegan消息。所以,我重寫它並添加了一些日誌記錄,但沒有發生任何事情。UIViewController沒有收到touchesBegan消息

我從來沒有做過任何「特殊」的事情,因爲從UIViewController繼承UIResponder,我希望這開箱即用。從我所瞭解的情況來看,UIImageView的默認情況下禁用了用戶交互,所以我通過InterfaceBuilder和UIViewcontroller的viewDidLoad方法(將UIImageView綁定到IBOutlet)啓用了它。我也確保在Interface Builder的父視圖中啓用userInteraction。

還有什麼我忘記了嗎?

回答

3

好吧,我是個假人。它工作正常。問題是,我沒有意識到我發送了釋放消息給UIViewController,而沒有先保留在其他地方。所以這是造成這個問題的原因。

0

很難說你的問題是什麼,我不知道你的意思是覆蓋它嗎?

確保您在接口構建器中將touchesBegan事件與IBAction連接起來?

您必須創建一個IBAction函數來處理該事件,並明確地將even連接到IBAction。它不像簡單地覆蓋方法那麼簡單。

儘管您將視圖綁定到IBOutlet,但您需要使用IBAction連接事件,否則您將無法獲得任何這些事件。

0

請忽略第一個答案。事實上,它就像覆蓋自定義視圖中的方法一樣簡單。未收到touchesBegan的最常見原因是未實現canBecomeFirstResponder方法。這不是IB連接,這是觸摸處理的標準方法。