가장 쉬운 방법은, 제 생각에, 두 번째 클래스의 대리자를 만드는 것입니다. 예를 들어 FirstClass와 SecondClass가 있다고 가정합니다. 각 파일은 자신의 파일입니다. SecondClass.h에서
SecondClass *class2 = [[SecondClass alloc] init....];
// set up the delegate, which basically creates a link between SecondClass and FirstClass;
class2.delegate = self;
, 당신이 뭔가를 설정해야합니다 : 당신이 SecondClass합니다 (UIView의를 인스턴스화)의 해당 인스턴스를 설정 최우수상을,에서
, 당신은 다음과 같은 일을 할 것이다 :
// add the FirstClass header file;
#import "FirstClass.h"
// synthesize the value;
@synthesize delegate;
// later on into the implementation file;
- (void)gestureHandlingMethod:(UIGestureRecognizer *)gesture {
// do whatever you need for the gesture in SecondClass;
// send a message to FirstClass (now defined as delegate of SecondClass);
[self.delegate handleGesture:gesture forClass:self];
}
:
@property (nonatomic, strong) id delegate;
및 SecondClass.m에
, 당신은 대리인에 대한 합성 값뿐만 아니라 제스처 처리 방법을 것이다
마지막으로,이 제스처 처리 방법을 FirstClass에 추가하여 필요한 것을 수행해야합니다. 따라서 FirstClass.h에 -(void)handleGesture:(UIGestureRecognizer *)gesture forClass:(id)secondClass;
을 추가하십시오. 그런 다음이 방법을 FirstClass.m에 추가하여 다음과 같이 마무리하십시오.
- (void)handleGesture:(UIGestureRecognizer *)gesture forClass:(id)secondClass {
// do what you want here from within the FirstClass;
[self doSomethingWithGestureIfYouWant:gesture];
// then deallocate SecondClass if that's what you want to do;
[secondClass dealloc]; // you may need to specify [(SecondClass *)secondClass dealloc];
}
이렇게해야합니다. 서로 다른 파일을 서로 연결하는 좋은 방법 일뿐입니다. 바라기를 이것은 당신을 도울 것입니다.
첫 번째 클래스에 대리자 또는 IBOutlet을 설정합니다. 두 번째 클래스에서 제스처를 처리하면 두 번째 클래스를 할당 해제하고 첫 번째 클래스 (첫 번째 응답자)에서 필요한 것을 수행하는 대리자 (첫 번째 클래스)에게 메시지를 보냅니다. – justin
@ IBLEutlet을 @slev 일등석에? 해당 IBOutlet 또는 대리인에게 메시지를 보내려면 어떻게해야합니까? 가능하다면 당신은 어떤 코드로 정교 할 수 있다면 그것은 위대 할 것이다. –
물론입니다. 함께 간단한 샘플 코드를 만들어 보겠습니다. 답변으로 추가하겠습니다 (서식을 지정하는 것이 훨씬 쉽습니다). – justin