私の意見では、最も簡単な方法は、2 番目のクラスのデリゲートを作成することです。たとえば、FirstClass と SecondClass があり、それぞれ独自のファイルがあると仮定します。
FirstClass では、SecondClass のインスタンスをセットアップする (UIView をインスタンス化する) と、次のようになります。
SecondClass *class2 = [[SecondClass alloc] init....];
// set up the delegate, which basically creates a link between SecondClass and FirstClass;
class2.delegate = self;
SecondClass.h では、次のように設定する必要があります。
@property (nonatomic, strong) id delegate;
SecondClass.m には、デリゲートの合成値とジェスチャ処理メソッドがあります。
// 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];
}
最後に、必要なことを実行できるように、このジェスチャ処理メソッドを 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];
}
それはそれを行う必要があります。これは、さまざまなファイルをリンクするちょっとした方法です。うまくいけば、これはあなたを助けます。