GameViewController라는 뷰가 있습니다. 나는 그것을 설정하지 않았지만 임베디드 EAGL 뷰가있는 UIKit 뷰인 것으로 보인다.하위 클래스의 UIGestureRecognizer 클래스에서 뷰의 선택기를 호출하는 방법
제 GameViewController에서 탭 및 스 와이프 용 제스처 인식기를 설정했습니다. 그들은 (게임 뷰 컨트롤러 내의 함수) touchesEnded를 호출 할 때 touchesBegan이 아니라면 tap을위한 selector로 설정 한 메소드를 제외하고는 훌륭하게 작동합니다.
touchesBegan 함수를 가져 오는 유일한 방법은 하위 클래스를 만드는 것입니다.
그래서 UITapGestureRecognizer를 서브 클래 싱하여 touchesBegan 함수를 만들었습니다. 거기에 NSLog가 터치 다운 될 때 호출됩니다. 그러나 UITapGestureRecognizer 하위 클래스에서 GameViewController의 함수를 호출 할 수는 없습니다. (클래스 메서드 + METHODIWANTTOCALL을 찾을 수 없습니다).
내가 "참조"를 앞뒤로 필요로한다는 것을 알았지 만 그게 어떨까요? 아니면 완전히 잘못된 접근입니까? 위임합니까? (내가 처음이야)이 UITapGesture 서브 클래스에서 호출 된 GameViewController 내에서 메소드를 갖는 가장 좋은 방법은 무엇입니까?
GameViewController는 확실히 싱글 톤입니다. 인스턴스를 반환하기 위해 코드를 작성하는 데 어려움을 겪고 있습니다. 모든 예제는 인스턴스를 할당하는 것 같습니다 ... 그리고 분명히 'GameViewController'가 이미 할당되어 있습니다. –
실제로 말해야 할 것은 GameViewController 인스턴스가 하나 밖에 없다는 것입니다.하지만 본 디자인 패턴을 사용하여 싱글 톤으로 설정되지 않았습니다. –
MyGameViewController라는 GameViewController 주위에 래퍼를 만들면됩니다. 또는 자신의 클래스를 싱글 톤을 검색 할 수있는 클래스로 사용하십시오. GameViewController를 초기화하고 저장할 때마다 "getGameViewController"라는 클래스 메쏘드를 생성하십시오. 그런 다음'[SomeClassThatOwnsController getGameViewController]를 호출하십시오 .' – John