2011-04-05 6 views
0

UITabBarController에 탭 제스처를 추가하는 방법에 대한 질문이 있습니다. UITabBarController는 이미 탭 제스처를 내장하고 있으므로 (탭 막대의 탭 막대 항목을 두드리는 것에 응답 함), 기술적으로는 제 Taber를 tabBarController에 추가 할 수 있지만 tabBar는 고유 한 탭 제스처를 잃어 버립니다. 하지만 tabBarController는 탭 표시 줄 항목에 네이티브 도청 응답을 잃는다 "탭"이 올바르게 도청 방법에 응답tabBarController에 탭 제스처 추가

UIViewController *VC1 = ....; 
UIViewController *VC2 = ....; 

UITabBarController *tabBarController = [[UITabBarController alloc] init]; 
tabBarController.viewControllers = [NSArray arrayWithObjects: VC1, VC2, nil]; 
UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] 
              initWithTarget:VC1 
                 action:@selector(tap:)]; 




[tabBarController.view addGestureRecognizer:tapGR]; 

을 : 다음은 내가 할 노력하고 있는지. 나는이 같은 tabBarController에 뷰 컨트롤러 중 하나에 제스처를 추가하려고 : 다음

[VC1.view addGestureRecognizer:tapGR]; 

그러나 그것에게 도청 제스처가 전혀 인식되지 이런 식으로 일을 비록에 도청의 한 tabBar의 기본 탭 인식 탭 표시 줄 항목은 유지됩니다.

누구든지 이런 유형의 문제를 해결하는 방법에 대한 제안이 있습니까? 한 가지 방법은 tabBarController를 사용하여 탭핑하는 것 이외의 다른 제스처를 선택하는 것입니다. 그러나 실제로는 그렇게하지 않을 것입니다 ...

보기에 많은 감사를드립니다!

답변

1

정확히 탭을 처리하는 컨트롤에서 탭으로 무엇을 하려는지 궁금합니다. 자신이하는 일이 사용자를 혼란스럽게하는지 여부를 고려하십시오.

하지만 꼭해야 할 경우 제스처 인식기에서 cancelsTouchesInView을 NO로 설정해보십시오. 그러면 인식자가 처리하는 것 외에도보기로 전달할 수 있습니다.

+0

정말 고마워요! 이것은 내 문제를 해결합니다. 탭바 컨트롤러의 네이티브 탭 제스처는 탭바에서 탭핑 이벤트 만 처리하지만 다른 탭 제스처를 추가하면 전체 화면이 다른 탭핑 이벤트에 응답 할 수 있습니다. – JusmanX