외부 클래스 (뷰 컨트롤러에없는 메소드)에서 위, 아래, 왼쪽 또는 오른쪽 스 와이프 동작을 모니터링하려고합니다. 나는 외부 클래스와 속성을 사용하여 어느 방향으로 밀어 넣었는지 판단 할 수 있도록 설정했지만 이제는 스 와이프가 감지 될 때 뷰 컨트롤러 내부에서 메서드를 실행하려고합니다 (어떤 방향이 스 와이프되었는지를 받아 들일 것입니다. 이에 따라 행동하십시오).뷰 컨트롤러가 아닌 클래스의 제스처 모니터링
다른 클래스에서 스 와이프가 감지 될 때 한 클래스에서 메서드를 실행하는 방법을 확신 할 수 없습니다. 현재, 내 SwipeDetector 클래스는 아래와 같이 설정되어 있으며 해당 kDirectionKey 상수를 뷰 컨트롤러 클래스의 메서드에 제공하고 스 와이프가 발생할 때마다 해당 메서드가 실행되도록하고 싶습니다. 옵서버를 사용해야하는 것입니까? 나는 그들을 사용 해보지 못했지만 조금 어려워 보입니다.
@synthesize up = _up;
@synthesize down = _down;
@synthesize left = _left;
@synthesize right = _right;
@synthesize swipedDirection = _swipedDirection;
- (void)recogniseDirectionSwipes
{
_up = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(upSwipeDetected)];
_down = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(downSwipeDetected)];
_left = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftSwipeDetected)];
_right = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeDetected)];
_up.direction = UISwipeGestureRecognizerDirectionUp;
_down.direction = UISwipeGestureRecognizerDirectionDown;
_left.direction = UISwipeGestureRecognizerDirectionLeft;
_right.direction = UISwipeGestureRecognizerDirectionRight;
}
- (void)upSwipeDetected
{
NSLog(@"Direction swipe sniffed out, and that direction was up!");
_swipedDirection = kDirectionKeyUp;
}
- (void)downSwipeDetected
{
NSLog(@"Direction swipe sniffed out, and that direction was down!");
_swipedDirection = kDirectionKeyDown;
}
- (void)leftSwipeDetected
{
NSLog(@"Direction swipe sniffed out, and that direction was left!");
_swipedDirection = kDirectionKeyLeft;
}
- (void)rightSwipeDetected
{
NSLog(@"Direction swipe sniffed out, and that direction was right!");
_swipedDirection = kDirectionKeyRight;
}
@end