Oli*_*ver 3 iphone null interface-builder uilabel iboutlet
我在访问IBOutlet时遇到问题.
我有一个NIB,里面有一个tableview,一个工具栏和一个UILabel(封装在一个视图中).控制器(即文件的所有者)定义为:
@interface ChoixPeriodeController : UIViewController <UITableViewDelegate> {
IBOutlet UILabel* __periodeInitialeLabel;
}
@property(nonatomic, retain) UILabel* periodeInitialeLabel;
- (void) setSelectedPeriode:(Tache_TypePeriode)typePeriode;
Run Code Online (Sandbox Code Playgroud)
同 @synthetize periodeInitialeLabel = __periodeInitialeLabel;
在.m文件中,父窗口调用此函数来初始化Label:
- (void) setSelectedPeriode:(Tache_TypePeriode)typePeriode {
NSMutableString* tmpString = [NSMutableString string];
[tmpString appendFormat:some text format....];
self.periodeInitialeLabel.text = tmpString;
}
Run Code Online (Sandbox Code Playgroud)
进入这个函数,我可以看到self.periodeInitialeLabel为零.我不明白为什么.一切都与IB相关联......你知道会出现什么问题吗?
这里的问题是操作的顺序.如果文本标签仍为零,则可能尚未设置.相反,您可以在UIViewController方法内部调用此方法viewDidLoad来处理此类操作,这些操作必须执行在Interface Builder中无法完成的"额外配置".
还有awakeFromNib.它们非常相似,只是在解压缩NIB文件时将awakeFromNib称为ONCE. viewDidLoad可以多次调用 - 例如,如果内存不足(通常在iOS4上发生),您的视图将被清除viewDidUnload.
| 归档时间: |
|
| 查看次数: |
5084 次 |
| 最近记录: |