选择行后,Tableview不会重新加载数据

时间:2018-03-16 07:04:17

标签: objective-c uitableview uisearchcontroller

当我选择tableView中的任何行时,应删除数据。我在textField中设置了所选文本,但是在选择后,tableView数据不会被清除,代码如下所示。

请帮帮我。

enter image description here

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    [self.tblViewSearch deselectRowAtIndexPath:indexPath animated:YES];

    TimeZoneCity *objCity = (TimeZoneCity *)[searchResult objectAtIndex:indexPath.row];
    txtfieldTimeZone.text=objCity.timezone;
    [searchResult removeAllObjects];
    [self.tblViewSearch reloadData];
}

1 个答案:

答案 0 :(得分:1)

如果您确实要删除表格视图,可以试试这个。如果您使用界面构建器设置了表视图,那么这是一个坏主意,因为在这种情况下它会为您创建。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [self.tblViewSearch deselectRowAtIndexPath:indexPath animated:YES];
    TimeZoneCity *objCity = (TimeZoneCity *)[searchResult objectAtIndex:indexPath.row];
    txtfieldTimeZone.text=objCity.timezone;
    [self.tblViewSearch removeFromSuperview];
}

更好的策略可能是隐藏它,然后在需要时再次显示它。为了让它看起来更漂亮,你也可以添加一个动画。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [self.tblViewSearch deselectRowAtIndexPath:indexPath animated:YES];
    TimeZoneCity *objCity = (TimeZoneCity *)[searchResult objectAtIndex:indexPath.row];
    txtfieldTimeZone.text=objCity.timezone;

    [UIView animateWithDuration:0.3 animations:^{
        self.tblViewSearch.alpha = 0.0;
    }];
}