Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone uitableview重新加载问题_Iphone_Scroll_Reload_Tableview - Fatal编程技术网

Iphone uitableview重新加载问题

Iphone uitableview重新加载问题,iphone,scroll,reload,tableview,Iphone,Scroll,Reload,Tableview,我有一个tableviewcontroller,在它里面我尝试加载表的数据。我有一个数组,并使用该数组创建自定义表单元格。它第一次工作正常,但当我想刷新表数据时(在更新数组后,我调用tableview的reloadData方法),但在滚动后会出现更新的数据。而且,新的数组大小比它在向底部滚动时抛出的第一个数组要短 重新加载数据无法正常工作 myArray = [self getNewData:0]; //updating array which is used to creating cell

我有一个tableviewcontroller,在它里面我尝试加载表的数据。我有一个数组,并使用该数组创建自定义表单元格。它第一次工作正常,但当我想刷新表数据时(在更新数组后,我调用tableview的reloadData方法),但在滚动后会出现更新的数据。而且,新的数组大小比它在向底部滚动时抛出的第一个数组要短

重新加载数据无法正常工作

myArray = [self getNewData:0];  //updating array which is used to creating cells
[self.tableView reloadData];    //reload data

谢谢…

听起来重新加载数据的调用完全没有效果。因此,检查
self.tableView
在调用时是否为非nil——在该行上方放置一个NSLog,如下所示:

NSLog(@" self.tableView = %@", self.tableView);

如果是零,那就是你的问题。

你说过,滚动后会出现更新的数据。 是否在单元格中添加标签而不是删除标签?在自定义单元格之前,请删除单元格上添加的所有标签

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    for (UIView * view in cell.contentView.subviews)
    {
        [view removeFromSuperview];
        view = nil;
    }
    //Your customization
    return cell;
}
可能是这样。
但对我来说,建议的似乎是更精确的解决方案

self.tableView=(null)您是对的。但是它怎么可能是空的,我很震惊。不,我没有使用IB。在loadview方法中,我像下面一样创建它,并且从未发布过它。self.tableView=[[UITableView alloc]initWithFrame:CGRectMake(0,0,320,370)style:uitableViewStyleGroup];self.tableView.backgroundColor=[UIColor greenColor];那么,在代码中,您在哪里调用重载数据呢?向我们展示完整的方法,或者更好地描述它。如果self.tableView=nil,那么要么在您重新加载数据时它还没有被设置,要么是有什么东西把它关闭了。我有一个非常奇怪的情况。如果我将我的表添加到uiview中,它将设置为nil,否则不会。代码导致问题[mainView addSubview:self.tableView];[自我重新加载页面:1第一个案例:是];self.view=mainView;如果我使用下面的like,它不会设置nil[self-reloadPage:1 firstCase:YES];self.view=self.tableView;