سؤال

والآن أنا أعمل مع cocos2d وأنا تصميم لإضافة navigationcontroller لتطبيق cocos2d بلدي، ولذا فإنني إضافة navigationcontroller لطلبي عندما كنت فوق ذلك لا يمر اللمس أو الحدث لcocos2d

والآن أنا في محاولة لتجاوز UINavigationController بواسطة إضافة اسم جديد فئة جديدة هي NavigationController وترث من UINavigationController

وفي الحرف الأول أسميه [سوبر تهيئة]. كل الأشياء تبدو تكون على ما يرام

ولكن عندما أحاول إضافة

- (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