Je voulais implémenter un protocole optionnel pour mes sous-vues. la classe subview est héritée par uiviewcontroller et la plupart des viewcontrollers sont hérités par cette sous-vue. Je pense que c'est une structure simple.iphone: protocole fonctionne en simulateur, mais pas sur le périphérique - je ne sais pas plus loin
le problème est: il ne fonctionne que dans le simulateur. Sur un périphérique, le premier nslog apparaît, puis l'application se ferme. sur le simulateur, cela fonctionne bien. Que pourrait-il être?
bien sûr que vous voyez, que certaines choses sont commentées, mais ils n'ont aucun effort.
le protocole:
@protocol CustomGestures <NSObject>
@optional
-(void)nextPage;
-(void)previousPage;
@end
parties de mon subviewcontroller
@implementation SubViewController
//handles gestures and passes them
//further to the superclass
//uiviwcontroller to take the normal behaviour
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
//pass the information to superclass
[super touchesEnded:touches withEvent:event];
//create object with protocol and some other objects
id<CustomGestures> gestures;
UITouch* touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self.view];
CGFloat deltaX = gestureStartPoint.x - currentPosition.x;
CGFloat deltaY = fabs(gestureStartPoint.y - currentPosition.y);
//if the subclass (self) has the protocol implemented, use the protocoll-features
if ([self conformsToProtocol:@protocol(CustomGestures)])
{
if (deltaX <= -80 && deltaY <= 20) {
NSLog(@"vorige seite");
[gestures nextPage];
} else
if (deltaX >= 80 && deltaY <= 20) {
[gestures previousPage];
NSLog(@"nächste seite");
}
}
}
}
parties d'un sous-vue
@interface NavInfos :
SubViewController <CustomGestures>{
....}
@implementation NavInfos
//CustomGestures-Protocol
-(void)nextPage{
NSLog(@"nächste seite im navinfos");
//[[TTNavigator navigator] openURLAction:[TTURLAction actionWithURLPath:@"tt://mapkit"]];//applyAnimated:YES]
}
-(void)previousPage{
NSLog(@"vorige seite im navinfos");
//[[TTNavigator navigator] openURLAction:[TTURLAction actionWithURLPath:@"tt://windows"]];
//applyTransition:UIViewAnimationTransitionFlipFromLeft] applyAnimated:YES]
}
merci Vladimir d'avoir corrigé ça. sur n'importe quel autre navigateur que j'utilise que safari, le formatage ne fonctionne pas correctement – nico