UITableView reloadData不起作用

时间:2015-02-16 17:00:44

标签: ios uitableview cell reloaddata

这是我的UITableView代码

在viewDidLoad

self.audioHistoryTableView = [[UITableView alloc] init];
self.audioHistoryTableView.delegate = self;
self.audioHistoryTableView.dataSource = self;

表格视图

#pragma mark - Table view data source

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"numberOfRowsInSection");
    NSLog(@"tableeeeeeee %lu",(unsigned long)[audioHistory count]);
    return [audioHistory count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSLog(@"cellForRowAtIndexPath");
    NSString *CellIdentifier = @"historyCell";
    UITableViewCell *cell = (UITableViewCell *)[self.audioHistoryTableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    NSString *audio = [audioHistory objectAtIndex:indexPath.row];
    cell.textLabel.text = audio;

    return cell;
}

当我添加数据并调用重新加载

NSArray *newItem = [NSArray arrayWithObject:@"new audio!"];
NSLog(@"new item : %@",newItem);

[audioHistory addObjectsFromArray:newItem];
[self.audioHistoryTableView reloadData];

我知道它不起作用,因为我添加了新数据并更改为其他页面,当返回此页面时,显示了添加的数据。

1 个答案:

答案 0 :(得分:0)

您可以通过界面构建​​器设置委托和数据源吗?此外,如果它是在界面构建器中创建的,为什么还要初始化表?删除它:

self.audioHistoryTableView = [[UITableView alloc] init];
self.audioHistoryTableView.delegate = self;
self.audioHistoryTableView.dataSource = self;

然后在界面构建器控件中从UITableView拖动到UIViewController并将委托设置为self。并再次执行此操作并将数据源设置为self。试试那个