我在 UIViewController 中创建了一个 UILabel 和一个更改该标签的函数,它们在 .h 文件中初始化如下:
@interface StoreDetailsController : UIViewController {
UILabel *storeNameLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *storeNameLabel;
- (IBAction)LabelTheStore:(int)storeNumber;
然后在 .m 文件中:
@synthesize storeNameLabel;
...
-(void)LabelTheStore:(int)storeNumber
{
NSLog(@"CHECK NUMBER: %d", storeNumber);
storeNameLabel = [[UILabel alloc] init];
storeNameLabel.text = @"TEST";
}
一个 int 变量被传递给随后将被使用的函数。日志根据我传递的内容显示正确的数字,因此我知道该函数被正确调用,但是当我从另一个类调用该函数时,标签永远不会更新。如果我在 storeNameLabel.text 上调用 NSLog,则显示为(null)。
storeNameLabel 在界面构建器中正确链接,程序构建正常。更新:
加载 StoreDetailsController 的方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
StoreDetailsController *storeDetailsController = [StoreDetailsController alloc];
storeDetailsController = [storeDetailsController initWithNibName:@"StoreDetailsController" bundle:[NSBundle mainBundle]];
NSInteger row = indexPath.row;
[storeDetailsController LabelTheStore:row];
[self.navigationController pushViewController:storeDetailsController animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}