在“viewDidLoad”中重新加载UIViewController

时间:2015-05-12 03:08:04

标签: ios objective-c uilabel viewdidload

我在“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];

}

2 个答案:

答案 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。