2015-05-12 2 views
-2

Я изменяю значение 2 UILabels в моем методе viewDidLoad, но мне нужно, чтобы представление обновилось после этого, чтобы отобразить значения. В настоящее время UILabels отображает значение ранее выбранной ячейки. Мне нужно сделать обновление сразу после изменения значений меток. Метод setNeedsDisplay не выполняет эту работу.Обновить UIViewController в "viewDidLoad"

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    _nameLabel.text = _selectedLocation.name; 
    _addressLabel.text = _selectedLocation.address; 

    [self.view setNeedsDisplay]; 

} 
+0

попытайтесь установить значения в ViewWillApper – user4261201

+0

То же самое происходит. – Vimzy

+0

В какой момент вы меняете значения меток – user4261201

ответ

0

Очень глупая ошибка. Оказывается, когда я перевел segue на следующий вид, я фактически перетащил его из физической ячейки на контроллер назначения. Тем не менее, я должен был просто подключить отправляющий контроллер uiview к контроллеру view view с помощью segue, а затем вручную обработать переход. Это исправило это, поэтому нет необходимости «обновлять или перезагружать» UIView, как я пытался это сделать.

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]; сразу после обновления значений.

Смежные вопросы