我有一个几乎只使用代码制作的 UI:所有内容(UIlabels 等)都在视图控制器的 viewdidload 中初始化。
。H
@interface homeViewController : UIViewController {
//IBOutlet UILabel *lbl; // not using an outlet anyway...
UILabel *lbl;
}
@property(nonatomic,retain) UILabel *lbl;
@end
.m
@interface homeViewController ()
@end
@implementation homeViewController
@synthesize lbl;
-(void)updateLabel {
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
double temptemp2 = [ud doubleForKey:@"somekey"];
lbl.text = [NSString stringWithFormat:@"%f", temptemp2];
[ud synchronize];
}
然后在 viewdidload 我只是调用 [self updateLabel]; 并且标签不会更新。但是,如果我将 updateLabel 方法中的相同代码放入视图并加载,则该代码有效。
UIlabel 在 [self updateLabel] 之前被初始化(alloc init);内部视图确实加载了。
如果我不想使用界面生成器来正确初始化标签对象,我应该如何正确初始化它?以便可以从同一视图控制器内的其他方法访问它?