0 votes

Appel d'une méthode dans un contrôleur de vue à partir d'une vue

Je dois invoquer une méthode présente dans un contrôleur de vue dont la référence est disponible dans la vue. Lorsque j'essaie d'appeler la méthode comme n'importe quelle autre méthode, pour une raison quelconque, iPhone ignore l'appel. Est-ce que quelqu'un peut m'expliquer pourquoi cela se produit et comment je peux faire pour invoquer cette méthode ?


Dans la vue, j'ai cette méthode :

-(void) touchesBegan :(NSSet *) touches withEvent:(UIEvent *)event{
NSArray* mySubViews = [self subviews];
for (UITouch *touch in touches) {
    int i = 0;
    for(; i<[mySubViews count]; i++){
        if(CGRectContainsPoint([[mySubViews objectAtIndex:i] frame], [touch locationInView:self])){
            break;
        }
    }
    if(i<[mySubViews count]){
                    // viewController is the reference to the View Controller. 
        [viewController pointToSummary:[touch locationInView:self].y];
        NSLog(@"Helloooooo");
        break;
    }
}

}

Lorsque l'événement touches est déclenché, Hellooooo est imprimé dans la console, mais la méthode précédente est simplement ignorée.

0voto

Peter Diertens Points 1

Dans la vue, j'ai cette méthode :

-(void) touchesBegan :(NSSet *) touches withEvent:(UIEvent *)event{
NSArray* mySubViews = [self subviews];
for (UITouch *touch in touches) {
    int i = 0;
    for(; i<[mySubViews count]; i++){
        if(CGRectContainsPoint([[mySubViews objectAtIndex:i] frame], [touch locationInView:self])){
            break;
        }
    }
    if(i<[mySubViews count]){
                    // viewController is the reference to the View Controller. 
        [viewController pointToSummary:[touch locationInView:self].y];
        NSLog(@"Helloooooo");
        break;
    }
}

}

Lorsque l'événement touches est déclenché, Hellooooo est imprimé dans la console, mais la méthode précédente est simplement ignorée.

0voto

Peter Diertens Points 1

J'ai créé un contrôleur de vue pour la vue et j'ai autorisé la communication entre les contrôleurs de vue. Cela fait peut-être partie du protocole MVC.

0voto

progrmr Points 32412

Vérifiez la valeur de viewController à l'endroit où il est utilisé pour vous assurer qu'elle n'est pas nulle, utilisez le débogueur ou ajoutez NSLog :

[viewController pointToSummary:[touch locationInView:self].y];
NSLog(@"viewController=%@", viewController);
NSLog(@"Helloooooo");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X