我有一个问题,我想设置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