UINavigationControllerのオーバーライドに関する問題
-
22-07-2019 - |
質問
今は、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];
}
所属していません StackOverflow