我在“viewDidLoad”方法中更改了2个UILabel的值,但我需要在此之后刷新视图以显示值。就目前而言,UILabels显示先前选择的单元格的值。我需要在更改标签的值后立即进行刷新。 “setNeedsDisplay”方法没有完成这项工作。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_nameLabel.text = _selectedLocation.name;
_addressLabel.text = _selectedLocation.address;
[self.view setNeedsDisplay];
}
答案 0 :(得分:1)
根据您的评论,我认为您正在尝试执行以下操作:
- (void)updateLabelTexts {
_nameLabel.text = _selectedLocation.name;
_addressLabel.text = _selectedLocation.address;
}
以及更改_selectedLocation
值的任何位置:
//Just an example
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
_selectedLocation = _yourLocationsArray[indexPath.row];
//now you call your update method
[self updateLabelTexts];
}
关键是您必须在更新值后立即致电[self updateLabelTexts];
。
答案 1 :(得分:0)
一个非常愚蠢的错误。当我使segue转换到下一个视图时,我实际上将它从物理单元格拖到目标控制器上。但是,我应该简单地将发送uiview控制器与segue连接到目标viewcontroller,然后手动处理转换。修复它,所以没有必要像我想要的那样“刷新或重新加载”UIView。