UITableView - > numberOfRowsInSection:(NSInteger)部分返回错误的值

时间:2011-02-15 17:49:35

标签: iphone objective-c uitableview

我今天第二次......但是这里有很多优秀的开发者......

您好,

我的tableView遇到了一些问题...如果视图出现我的表重新加载其数据,但它不会更新numbersOfRowsInSection ......

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"COUNTER: %i",[content count]);
    return [content count];
}

日志说我第一次加载页面的值是正确的。但是,如果我添加一个对象并重新加载数据,则此函数不会调用。

有没有人知道解决方案?

谢谢, mavrick3。

编辑:

下面我打电话给[table reloadData]

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    if ([content count] != 0) {
        self.content = [[[[NSArray alloc] initWithContentsOfFile:[FileManager filePath]] objectAtIndex:row_] objectForKey:@"faecher"];
        [table reloadData];
        NSLog(@"----%@",content);
    }
}

是的,dataSource和delegate已连接,它们都在我的标题中实现。

2 个答案:

答案 0 :(得分:1)

如果在UITableview对象上调用reloadData并且它是dataSource,则应该调用此方法。

您确定已将表格视图分配给您的媒体资源(即在界面制作工具中将其拖放过来吗?)

我怀疑你只是让你的控制器成为你的表视图的dataSource(因此第一次加载它时获取值)。之后,对reloadData的调用将无法工作,因为视图控制器中的属性仍为零。


你可以通过在调用reloadData之前放置一个NSLog来测试它 - 如果它输出nil然后你没有连接它。

NSLog(@"%@", myTable);
[myTable reloadData];

答案 1 :(得分:0)

任何编译器警告? “table”实际上是UITableView的一个实例吗?