gpt4 book ai didi

iphone - UILabel 不更新

转载 作者:太空狗 更新时间:2023-10-30 03:28:28 26 4
gpt4 key购买 nike

抱歉这个基本问题,但这让我困扰了一段时间。

我从 UITable 创建了一个细节 View 并尝试动态设置它的标签,但它们没有更新:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myObject *tmpObj = [[myObject objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];

myViewController *tmpVC = [[myViewController alloc] initWithNibName:@"NIBfile" bundle:nil];

[tmpVC.myLabel setText:tmpObj.myTitle]; // The debugger shows the text: myTitle = "myText"
NSLog(@"%@", tmpVC.myLabel); // NSLog SHOWS NULL

[self.navigationController pushViewController:tmpVC animated:YES];
[tmpObj release];
}

Interface Builder 中的连接已设置。文件所有者的连接选项卡显示

'myLabel' - 'Label (myLabel)'

有什么想法没有体现值(value)吗?

更多观察:

  • 我还连接了一个 IBAction。当我单击连接按钮。
  • 我得到了一些关于我的指示NSLog-statement,是否应该最好不要使用 tmpVC.myLabel.text,但尝试也返回 NULL。
  • myLabel 声明为 IBOutlet界面中的UILabel *myLabel。该属性被定义为非原子的,保留。

有光:

在进一步尝试之后,我将 pushViewController 语句移至标签更新上方。这解决了标签更新问题。

工作代码如下所示:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
myObject *tmpObj = [[myObject objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];

myViewController *tmpVC = [[myViewController alloc] initWithNibName:@"NIBfile" bundle:nil];

[self.navigationController pushViewController:tmpVC animated:YES];

[tmpVC.myLabel setText:tmpObj.myTitle]; // The debugger shows the text: myTitle = "myText"
NSLog(@"%@", tmpVC.myLabel); // NSLog SHOWS NULL

[tmpObj release];
}

但我不明白为什么我需要先推送我的 viewController ???

最佳答案

那是因为 Controller 的 View 只有在被访问时才会延迟创建。插入 Controller 访问 View 。

或者,如果您添加一行来访问 View 属性,它也可以工作:

  myViewController *tmpVC = [[myViewController alloc] initWithNibName:@"NIBfile" bundle:nil];
tmpVC.view; // Force view creation
[tmpVC.myLabel setText:tmpObj.myTitle]; // The debugger shows the text: myTitle = "myText"
NSLog(@"%@", tmpVC.myLabel); // NSLog will display "myText"
[self.navigationController pushViewController:tmpVC animated:YES];

关于iphone - UILabel 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com