2012-06-07 1 views
0

J'essaie d'utiliser des storyboards dans mon application. J'ai bien commencé, j'ai ajouté deux contrôleurs de vue avec un bouton pour passer du premier au second. Le problème est dans ce second contrôleur de vue: les objets que j'ajoute dessus et le lien avec le code ne fonctionnent pas. Lorsque je définis un point d'arrêt dans le code du contrôleur de vue, le paramètre "self.property" est défini sur "nil", alors qu'il doit être instancié par le storyboard.Mes objets dans le storyboard ne lient pas correctement avec le code

J'ai cherché une réponse pendant des heures, et je ne comprends vraiment pas le problème, puisque tout le reste semble être bon.

J'ai essayé d'écrire la propriété dans le code (fort/nonatomique, nonatomique/conserve et même faible/nonatomique), pour lier directement l'objet au code afin qu'il crée automatiquement la propriété, mais je ne reçois jamais rien autre que "nul" avec des points d'arrêt.

viewController.h:

@interface NMLoadingViewController : UIViewController 
{ 
    __weak IBOutlet UIProgressView *imageProcessingProgressView; 
} 
@property (weak, nonatomic) IBOutlet UIProgressView *imageProcessingProgressView; 

@end 

.m:

@synthesize imageProcessingProgressView; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    // Custom initialization 
    NSLog(@"INIT."); 
} 

(autres lignes de Amont Code non pertinent)

Si je mets le point d'arrêt à la "INIT". ligne, mon imageProcessingProgressView est nul. Je ne peux pas voir une raison pour cela, je suppose que j'ai raté un très petit détail ...

(Notez que j'ai essayé ceci avec d'autres objets, comme un UILabel, mais ça n'a pas fonctionné non plus. quand j'avais deux objets, l'un d'entre eux avait une adresse qui n'était pas nulle, mais elle était corrompue et ne montrait pas le bon objet.)

Edit: Ça a été un gros problème pour rien ... Le problème est sur l'affichage des variables XCode, qui montrent ma variable à « nulle », alors qu'un journal me montre un objet correct ...

Répondre

1

Supprimer cette ...

{ 
    __weak IBOutlet UIProgressView *imageProcessingProgressView; 
} 

... et rendre la propriété forte.

Changer votre message journal pour ...

NSLog(@"INIT: %@", self.imageProcessingProgressView); 

... et voir si vous avez encore un problème. Si vous le faites, examinez de nouveau les connexions de votre storyboard.

+0

Eh bien ... enfin l'erreur vient de la console: je vois une adresse nulle pour mon imageProcessingProgressView, mais le journal donne un objet correct ... Il semble que XCode a quelques problèmes, ce n'est pas la première fois que je vois ça:/ Merci, au moins, je sais que c'est juste la vue variable qui est bugging. – Grhyll

+0

Cependant, dans une autre fonction j'essaie de définir la valeur de la barre de progression et elle n'apparaît pas: [self.imageProcessingProgressView setProgress: [[objet de notification] floatValue] * 100 animé: NO]; (la valeur flottante est correcte car je la connecte.) Y at-il une autre fonction à appeler pour afficher cette modification à l'écran? (Si la réponse est rapide.) – Grhyll

+0

Peu importe pour cette dernière question, j'ai trouvé la réponse! Merci de votre aide. – Grhyll

1

Assurez-vous NMLoadingViewController est la classe de votre viewController

+0

Oui, le lien entre l'objet contrôleur de vue et la classe est correct car il s'arrête au point d'arrêt défini dans le code de la classe. – Grhyll

+0

Eh bien ... Voir ma réponse à Phillip Mills, enfin cela a fonctionné, mais ma vue variable est foiré ... Merci cependant. – Grhyll

0

Essayez d'abord la réponse par @Eric parce que je crois que c'est le vrai problème.

Assurez-vous également que vous utilisez réellement le constructeur d'interface pour relier les contrôles au contrôleur de vue. Pour ce faire, faites glisser une ligne du contrôle vers la propriété du contrôleur de vue.

+0

Comme répondu à Eric, je suis assez sûr que le lien pour le contrôleur de vue est ok; à propos de l'autre point, j'ai fait glisser la vue de progression dans mon contrôleur de vue avec le constructeur d'interface; puis j'ai traîné une ligne de la vue de progression (avec un clic droit/glisser) vers le.h fichier, qui a ajouté le code écrit dans mon message. – Grhyll

+0

Eh bien ... Voir ma réponse à Phillip Mills, enfin cela a fonctionné, mais ma vue variable est foiré ... Merci cependant. – Grhyll

Questions connexes