我想在用戶單擊屏幕時調用兩個類(超級視圖和全屏子視圖)中的操作。但是,當我添加一個UITapGestureRecognizer到子視圖時,被添加到超級視圖的被覆蓋。是否可以添加一個UITapGestureRecognizer到子視圖而不必重寫添加到超級視圖的UITapGestureRecognizer? 如果是這樣,我該怎麼做?是否有可能同時接收2個類的UITapGestureRecognizer調用
謝謝!
編輯: 從我的主要的viewController 「MyToolBerController」,我添加來自其他的viewController子視圖如下:
PhotoViewController *photoViewController = [[PhotoViewController alloc] initWithNibName:@"PhotoViewController" bundle:nil];
myPhotoView = photoViewController.view;
[self.view addSubview:myPhotoView];
我添加GestureRecognizer在MyToolBerController這樣的:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapFrom:)];
[singleTap setNumberOfTapsRequired:1];
singleTap.delegate = self;
[myPhotoView addGestureRecognizer:singleTap];
[singleTap release];
這一切工作正常,但我需要調用PhotoViewController類中的方法時,以及在MyToolBerController類中點擊視圖。 當我在photoViewController中添加另一個UITapGestureRecognizer時,它會覆蓋在superView中添加的UITapGestureRecognizer。
感謝您的幫助!不幸的是,我通過將uiviewcontroller的視圖添加爲子視圖來打破規則。第二個UIGestureRecognizer添加到新的UIViewController中。我想使用pushViewController方法,但我需要查看只佔用部分屏幕。這會繼續嗎? – Jonah 2010-07-08 20:28:17
只要你可以用指針獲得視圖或其視圖控制器,你可以發送消息給它,它可以響應。你沒有違反規則。你在做什麼很好。您的視圖控制器可以是手勢發生時您的消息發送到的代理。如果視圖具有視圖控制器,則不必是視圖本身。這是視圖**控制器**的目的是處理髮送到視圖和從視圖發送的消息。當您創建副視圖時,只需保留您的視圖控制器,並在您的手勢識別器選擇器中將參數傳遞給它。 – 2010-07-08 20:43:52
這正是我需要的。我怎樣才能得到一個指針的viewController舉行?我已經嘗試過使用「@class myViewController」,但是我不確定如何正確實現它,並且我找不到任何示例代碼來顯示如何執行此操作。你會如何推薦這樣做? 感謝您的幫助! – Jonah 2010-07-08 20:57:29