當我在我的自定義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