我有一個問題,我想設置UILabel或UItextView或另一個IBOUTLET對象的文本,但我只能在viewwillappear和viewdidload方法,如果我在代碼中的另一種方法中設置文本不會改變什麼,這裏是一個例子:UILabel,UITextView等..只能在ViewWillAppear和ViewDidLoad中工作,不要動態更改
我有一種方法,從另一個類檢索字符串,然後我想設置此字符串在我的uilabel :
- (void)setDetailItem:(id)newDetailItem
{
if (detailItem != newDetailItem) {
NSLog(@"SetDetailItem");
[detailItem release];
detailItem = [newDetailItem retain];
detailString = [[FindStringClass alloc] init];
// Update the view.
detailItem = [detailString searchStringFor:detailItem.name];
if (detailItem) {
//
NSLog(@"setDetail: %@",detailItem.stringName);
[self configureView];
}
}
}
- (void)configureView {
NSLog(@"configure view: %@",detailItem.stringName);
mySerialTitle.text = detailItem.stringName;
}
的NSLog的工作,我可以看到我的字符串中的控制檯,但在視圖中的文本不換,而不是如果我在ViewWillApp設定一個簡單的文本耳朵或viewDidLoad方法的工作,所以與IBOOutlets的連接是正確的,就像這樣:
- (void)viewDidLoad
{
mySerialTitle.text = @"CIAO";
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
這是調用函數,其中我所說的setDeatItem從另一種觀點認爲:
self.searchResultViewController.detailItem = [myArray objectAtIndex:[indexPath row]];
[self.navigationController pushViewController:self.searchResultViewController animated:YES];
有人能幫助我?
編輯: 這是的NSLog其中該方法被稱爲:
2012-03-19 12:51:02.617 TestApp[292:b603] SetDetailItem
2012-03-19 12:51:06.161 TestApp[292:b603] setDetail: Chicken
2012-03-19 12:51:06.162 TestApp[292:b603] configure view: Chicken
2012-03-19 12:51:06.175 TestApp[292:b603] View DidLoad
我調用從Tableviewcontroller的searchviewcontroller視圖我按下上的行,然後調用新的視圖,並通過該屬性。
發佈更多的代碼...給你的第一個功能的整個代碼..當這被稱爲.. – Shubhank 2012-03-19 11:04:59
我已編輯...但NSLog的工作,所以我不明白爲什麼不改變標籤中的文本...如果我這樣做:mySerialTitle.text = @「CIAO」;在配置視圖方法或setDetailItem方法中,不要更改文本...我要瘋了 – Piero 2012-03-19 11:21:27
添加斷點並檢查配置視圖是否實際調用或不...您是否也可以告訴您何時調用第一個功能..給你從哪裏調用它的代碼..post該功能太.. – Shubhank 2012-03-19 11:29:54