当我在我的自定义initWithNibName方法中编程分配一个UILabel,并在稍后在viewDidLoad中试图给它分配一个字符串时,标签没有指向任何东西。我没有发布它;标签显示在屏幕上。如果我在IB中创建标签,并在viewDidLoad中为其分配文本,它将起作用。IB对象vs手动分配的对象在init/viewDidLoad
是否违反在viewDidLoad中设置手动分配对象的规则? 即使viewDidLoad在我的init之后被调用,它为什么不指向任何东西?
从viewDidLoad中的DOC:
视图控制器加载其相关联的视图到内存中后,此方法被调用。无论视图是存储在nib文件中还是以编程方式在loadView方法中创建,都会调用此方法。此方法最常用于对从nib文件加载的视图执行附加初始化步骤。
在我的初始化:
_descriptionLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 218, 280, 10)];
_descriptionLabel.numberOfLines = 0;
_descriptionLabel.lineBreakMode = UILineBreakModeWordWrap;
_descriptionLabel.font = [UIFont systemFontOfSize:12.0];
_descriptionLabel.adjustsFontSizeToFitWidth = NO;
_descriptionLabel.text = @"Description not found.";
_descriptionLabel.backgroundColor = [UIColor clearColor];
在viewDidLoad中,变量的值为0x0。 这与我手动分配的UIButton一样,一旦视图加载完全工作。
您能否展示一些不起作用的示例代码?我不知道你的意思是“该标签没有指向任何东西” – stefanB 2009-05-19 06:55:02
编辑原始帖子的澄清。 – hyn 2009-05-19 07:15:12
您是否在IB中创建了UILabel是否定义为IBOutlet UILable,并且它已连接到IB上的UILabel窗口,或者您是否试图以实用的方式创建它,例如UILable * descLabel = [[...]]? – stefanB 2009-05-19 07:25:58