I have a `tableviewcell` in the `RegisterViewController`, when i click on it, it push to the `SelectCityViewController` where i can pick a city from a `uipickerview`. and I have defined a delegate in the `SelectCityViewController`. But when i implement the delegate method, i got the city back from the `pickerview` and the selected `indexpath` from `didSelectRowAtIndexPath` in `RegisterViewController`. When i check the log, i get the city, and the selected `indexpath`. but when i call `reloadRowsAtIndexPaths`, the cell still got the old titlelabel text. the code:

```
SelectCityViewController.h

@protocol SelectCityDelegate <NSObject>

- (void)didGetCity:(City *)city;

@end

SelectCityViewController.m

- (void)finished:(UIBarButtonItem *)buttonItem
{
    if ([self.delegate respondsToSelector:@selector(didGetCity:)]) {
        [self.delegate didGetCity:self.city];
    }
    NSLog(@"%@", self.city.city);
    [self.navigationController popViewControllerAnimated:YES];
}

RegisterViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 2) {
        self.selectedIndexPath = indexPath;
        UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
        SelectCityViewController *signUp = [storyBoard instantiateViewControllerWithIdentifier:@"SignVC"];
        signUp.delegate = self;
        [self.navigationController pushViewController:signUp animated:YES];
    }
}

- (void)didGetCity:(City *)city
{
    NSLog(@"%@", city.city);
    NSLog(@"%@", selectedIndexPath);
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:selectedIndexPath];
    cell.textLabel.text = city.city;
    [self.tableView reloadRowsAtIndexPaths:@[selectedIndexPath] withRowAnimation:UITableViewRowAnimationFade];
}

```