Mi hanno cercato di impostare un colore UIImageView di sfondo (vedi sotto) in awakeFromNibAccesso alla vista in awakeFromNib?
[imageView setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]];
Quando non ha funzionato, mi sono reso conto che la sua probabilmente perché la vista non ha ancora caricato e mi dovrebbe spostare il cambiamento di colore per visualizzareDidLoad.
Posso solo verificare che ho ragione?
Gary
EDIT_002:
ho appena iniziato un nuovo progetto di controllare questo da un inizio pulito. Ho impostato la vista come sempre. I risultati sono che i controlli sono effettivamente impostati su (null) in awakeFromNib. Ecco quello che ho:
CODICE:
@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];
}
USCITA:
awakeFromNib ...
myLabel: (null)
myView : (null)
viewDidLoad ...
myLabel: UILabel
myLabel: UIImageView
Sarei interessato a sapere se questo dovrebbe funzionare, dalla documentazione sembra che dovrebbe, ma dato il modo in cui io di solito impostare le cose non riesco a capire perché non in questo caso.
Grazie Zoul, questo è molto interessante. Credo che sia meglio usare viewDidLoad per forzare la vista a caricare prima le chiamate.Ho anche letto che l'uso di awakeFromNib potrebbe non essere una buona idea su iPhone, ma sembra esserci un parere contrastante su questo. Grazie ancora ... – fuzzygoat
Se non hai accesso alla vista, esegui performSelector: withObject: delay call da awakeFromNib. Un hack, ma efficace. – phatmann
Sono appena incappato in questa domanda e ho risposto per la prima volta - mi avrebbe risparmiato un sacco di problemi se l'avessi trovato prima! Il problema esiste ancora nel 2013 e ritengo che il comportamento sia in contraddizione con la documentazione - vedi qui: http://stackoverflow.com/questions/17400547/awakefromnib-outlets-and-storyboards-is-the-documentation-wrong –