J'ai essayé de définir une couleur d'arrière-plan UIImageView (voir ci-dessous) dans awakeFromNibAccéder à Afficher dans awakeFromNib?
[imageView setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]];
Quand il ne fonctionne pas, je me suis aperçu que son probablement parce que la vue n'a pas encore chargé et je dois déplacer le changement de couleur pour voirDidLoad.
Puis-je vérifier juste que j'ai ce droit?
gary
EDIT_002:
Je viens de commencer un nouveau projet pour vérifier à partir d'un démarrage propre. Je configure la vue de la même manière que je le fais toujours. Les résultats sont que les contrôles sont bien définis sur (null) dans awakeFromNib. Voici ce que j'ai:
CODE:
@interface iPhone_TEST_AwakeFromNibViewController : UIViewController {
UILabel *myLabel;
UIImageView *myView;
}
@property(nonatomic, retain)IBOutlet UILabel *myLabel;
@property(nonatomic, retain)IBOutlet UIImageView *myView;
@end
.
@synthesize myLabel;
@synthesize myView;
-(void)awakeFromNib {
NSLog(@"awakeFromNib ...");
NSLog(@"myLabel: %@", [myLabel class]);
NSLog(@"myView : %@", [myView class]);
//[myLabel setText:@"AWAKE"];
[super awakeFromNib];
}
-(void)viewDidLoad {
NSLog(@"viewDidLoad ...");
NSLog(@"myLabel: %@", [myLabel class]);
NSLog(@"myView : %@", [myView class]);
//[myLabel setText:@"VIEW"];
[super viewDidLoad];
}
SORTIE:
awakeFromNib ...
myLabel: (null)
myView : (null)
viewDidLoad ...
myLabel: UILabel
myLabel: UIImageView
Je serais intéressé de savoir si cela devrait fonctionner, à partir de la documentation, il semble que cela devrait, mais étant donné la façon dont je mettre les choses en général je ne peux pas tout à fait comprendre pourquoi cela ne fonctionne pas dans ce cas.
Merci Zoul, c'est très intéressant. Je suppose que je ferais mieux d'utiliser viewDidLoad en forçant la vue à charger les appels d'abord de toute façon.J'ai aussi lu qu'utiliser awakeFromNib n'est peut-être pas une bonne idée sur l'iPhone, mais il semble y avoir une opinion mitigée à ce sujet. Merci encore ... – fuzzygoat
Si vous n'avez pas accès à la vue, alors effectSelector: withObject: delay appel de awakeFromNib. Un hack, mais efficace. – phatmann
J'ai juste trébuché sur cette question et répondu pour la première fois - cela m'aurait sauvé un tas de problèmes si je l'avais trouvé plus tôt! Le problème existe toujours en 2013, et je crois que le comportement contredit la documentation - voir ici: http://stackoverflow.com/questions/17400547/awakefromnib-outlets-and-storyboards-is-the-documentation-wrong –