質問

今は、cocos2dを使ってcocos2dアプリケーションにnavigationcontrollerを追加するように設計しています。 タッチまたはイベントをcocos2dに渡さないように、クリックするとアプリケーションにnavigationcontrollerを追加します

今、私はUINavigationControllerをオーバーライドしようとしています 新しい新しいクラス名を追加するとNavigationControllerになり、UINavigationControllerを継承します

in init i call [super init]; すべてが大丈夫に見える

しかし、追加しようとすると

- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"Im overriding touch");
    return YES;

}



- (BOOL)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"Im overriding touchMove");
    return YES;
}

呼び出さない

役に立ちましたか?

解決

なぜ元の名前ではなくメソッド ccTouchesBegan:withEvent:および ccTouchesMoved:withEvent:を呼び出すのですか? UINavigationControllerをサブクラス化するときに、メソッドの名前を変更する必要はありません。代わりに、同じ名前を保持し、必要に応じてそれらに対して super を呼び出す必要があります。例:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"I'm overriding touch");
    [super touchesBegan:touches withEvent:event];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"I'm overriding move");
    [super touchesMoved:touches withEvent:event];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top