2011-12-05 7 views
3

난 당신이 GitHub의에 볼 수있는 OpenSource 다음 매거진 엔진에 일하고 있어요 : 내가 MenuPanel라는 한 UIView의에 UIToolbar을 설정 한UIToolbar를 방해하는 UIGestureRecognizers?

https://github.com/interactivenyc/Defrag

. 어떤 이유로 UIToolbar의 UIBarButtonItem이 해당 액션을 제대로 호출하지 않습니다. 저는 여기에 버튼을 위해 사용하고 구문입니다 어디서나 내 화면에 클릭 있다는 것입니다 일어나고 무엇

UIBarButtonItem *homeItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"home.png"] style:UIBarButtonItemStylePlain target:self action:@selector(buttonClicked:)]; 

에서, UITapGestureRecognizer 내 주요의 UIViewController에 선언 대신 호출되고있다. 이것은 내 주요의 UIViewController에서 코드 블록에서 설정을 가져옵니다

- (void)setupGestureRecognizers { 

//NSLog(@"setupGestureRecognizer NEW"); 

UISwipeGestureRecognizer *swipeRecognizer; 

swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; 
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight; 
[self.view addGestureRecognizer:swipeRecognizer]; 
[swipeRecognizer release]; 

swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; 
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionLeft; 
[self.view addGestureRecognizer:swipeRecognizer]; 
[swipeRecognizer release]; 

swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; 
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionUp; 
[self.view addGestureRecognizer:swipeRecognizer]; 
[swipeRecognizer release]; 

swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; 
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionDown; 
[self.view addGestureRecognizer:swipeRecognizer]; 
[swipeRecognizer release]; 

UITapGestureRecognizer *tapRecognizer; 

tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; 
[self.view addGestureRecognizer:tapRecognizer]; 
[tapRecognizer release]; 
} 

나는 내가이 작업을 수행하기 위해 노력하고있어 방법에 아주 기본적인 개념에 뭔가 문제가 있는지 확인 해요. 누군가이 문제를 어떻게 해결할 수 있는지 말해 줄 수 있습니까?

참고로, 당신은 내 주요 DefragViewController을 볼 수 있습니다 여기에 UIView : 여기의 UIViewController :

https://gist.github.com/1431722

그리고 내 MenuPanel을

gist.github.com/1431728

답변

5

나는 내 자신의 질문을 해결했다.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ 

    //ignore any touches from a UIToolbar 

    if ([touch.view.superview isKindOfClass:[UIToolbar class]]) { 
     return NO; 
    } 

    return YES; 
} 
+1

에 오신 것을 환영합니다 스택 오버플로 :

는이 같은 어떤 UIToolbar에서 접촉을 무시하고 내 UIViewController에 얘기했다! 다른 사람들이 해결책이 있음을 알 수 있도록 응답을 승인 된 것으로 표시하십시오. –

관련 문제