我有一個奇怪的問題。我有一個標籤欄應用程序。當我想用任何方法設置UILabel的文本時,不會發生任何事情。無法編輯方法中的任何對象
例如,只能自認倒黴「LABEL1」發生在我調用這個方法:
-(void)setOne:(NSMutableArray *)theArray {
label1 = [[UILabel alloc] init];
label1.text = @"Test";
}
有沒有人有這個問題的解決方案?
感謝,
耶勒
我有一個奇怪的問題。我有一個標籤欄應用程序。當我想用任何方法設置UILabel的文本時,不會發生任何事情。無法編輯方法中的任何對象
例如,只能自認倒黴「LABEL1」發生在我調用這個方法:
-(void)setOne:(NSMutableArray *)theArray {
label1 = [[UILabel alloc] init];
label1.text = @"Test";
}
有沒有人有這個問題的解決方案?
感謝,
耶勒
當調用此方法創建一個新的標籤,並預先用這個伊娃丟失相關聯的標籤的連接。這也可能是內存泄漏。
編輯:
根據您的代碼的其餘部分,這可能是工作:
-(void)setOne:(NSMutableArray *)theArray {
label1.text = @"Test";
}
你看不到任何東西發生,因爲你創建的標籤新實例,不添加它任何地方。如果您真的想爲視圖添加新標籤,請使用適當的框架創建並實際添加到某個視圖,例如
-(void)setOne:(NSMutableArray *)theArray {
label1 = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 10.0f, 200.0f, 30.0f)];
label1.text = @"Test";
[self.view addSubview: label1];
// And do not forget to release your label!
[label1 release];
}
如果要更改已存在不你的方法創建新實例標籤的文本,剛剛成立的新文本,使其:(從更多的信息:
-(void)setOne:(NSMutableArray *)theArray {
// if label1 already exists we don't need to create a new one
label1.text = @"Test";
}
編輯
評論)當您創建視圖控制器可能無法加載它的直接視圖,以便在你的代碼
FirstViewController *FVC = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[FVC setOne:[resultaten objectAtIndex:indexPath.row]];
當您調用setOne方法時,fvc的視圖可能仍然不會被加載,並且label1在該方法中仍然爲零。您可以解決迫使控制器的視圖來加載,下面應該工作:
FirstViewController *FVC = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
FVC.view;
[FVC setOne:[resultaten objectAtIndex:indexPath.row]];
但總的來說我建議你值存儲在一些類,在單獨的變量是從UI(即模型)獨立或至少您的控制器並將其設置爲UI元素時,才實際加載或出現在屏幕上(在viewDidLoad中或viewWillAppear中的方法)
- (void)viewDidLoad
{
[super viewDidLoad];
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 22)];
lbl.text [email protected]"Hello";
[self.view addSubview:lbl];
}
已經聲明在.h文件中的LABEL1? – PJR
是的,我沒有聲明label1 – Jelle
你有沒有在接口生成器中連接它? – PJR