Un problema con l'override di UINavigationController
-
22-07-2019 - |
Domanda
ora sto lavorando con cocos2d e progetto per aggiungere controller di navigazione alla mia applicazione cocos2d, quindi aggiungo il controller di navigazione alla mia applicazione quando faccio clic per non passare il tocco o l'evento a cocos2d
ora sto cercando di ignorare UINavigationController di aggiungi un nuovo nome di classe è NavigationController ed eredita da UINavigationController
in init chiamo [super init]; ogni cosa sembra andare bene
ma quando provo ad aggiungere
- (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;
}
non chiama
Soluzione
Perché stai chiamando i metodi ccTouchesBegan: withEvent:
e ccTouchesMoved: withEvent:
invece dei nomi originali? Non è necessario modificare i nomi dei metodi quando si esegue la sottoclasse di UINavigationController; invece, dovresti mantenere gli stessi nomi e chiamarli super
nel modo più appropriato. Ad esempio:
- (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];
}