2010-10-07 31 views
0

J'ai un problème pour accéder aux méthodes d'affichage à partir de son UIViewController. J'ai commencé à programmer en xcode il y a seulement 2 semaines et je dois modifier un programme réalisé par une autre personne. Le UIView était glisser-déposer dans le constructeur de l'interface dans le fichier .xib du UIViewController et est initialisé par la méthode initWithFrame et drawRect. Cette vue contient un NSTimer que je dois arrêter lorsque l'utilisateur clique sur le bouton fermer de la barre de navigation. J'ai donc une IBAction dans le UIViewController qui est activée quand on appuie sur le bouton. Et cette méthode devrait lancer une méthode de UIView mais cela ne fonctionne pas. Xcode ne détecte aucune erreur ou avertissement mais le code de l'UIView n'est jamais exécuté. Quand je lance l'application, tout fonctionne bien mais ceci.ne peut pas accéder à UIView à partir de UIViewController

UIView.h:

@interface Clock3D: UIView {...

NSTimer * minuterie;
NSTimer * timerS;
}
...
@property (conserver, nonatomic) NSTimer * timer;
@property (conserver, nonatomic) NSTimer * timerS;
...
- (void) doneTest;
@end

UIView.m:

@implementation Clock3D
@synthesize timer, minuteries, ...
...
- (void) {doneTest

NSLog (@ "arret timerS");
[timerS invalidate];
NSLog (@ "arret timer");
[timer invalidate];

}

UIViewController.h:

import "Clock3D.h"

@class Clock3D;

@interface Popup360: UIViewController {...

Clock3D * clock3D;
}
...
@property (conserver, nonatomic) IBOutlet Clock3D * clock3D; ...
- (IBAction) fait;

@end

UIViewController.m:

@implementation Popup360
@synthesize ..., clock3D;

- (IBAction) done {
[clock3D doneTest];
[self dismissModalViewControllerAnimated: YES];
}

Ainsi, la commande [clock3D doneTest] ne (apparaît NSLog de doneTest jamais dans le journal) fonctionne pas mais commande [auto dismissModalViewControllerAnimated: OUI]; travaux.

Nous vous remercions de votre réponse.

Répondre

0

Dans IB, vérifiez le type de la propriété view de Popup360. Si elle est définie sur UIView, remplacez-la par .