tableView reloadData不起作用

时间:2009-11-07 01:10:14

标签: iphone objective-c uitableview

出于某种原因,[self.tableView reloadData];就行不通 在我的.h文件中,我有:

@interface SearchOptions : UIViewController <UINavigationBarDelegate, UITableViewDelegate, UITableViewDataSource> 
{
    IBOutlet UITableView *myTableView;
     .....
}

我试过了:

[self.tableView reloadData];

[self.myTableView reloadData];

任何想法可能会发生什么?

4 个答案:

答案 0 :(得分:2)

你确定它不是 - nil吗?那就是你的插座连接正确了吗?

属性tableView是否合成了ivar myTableView? (您的问题中不包含该代码。)

答案 1 :(得分:2)

检查您是否在Interface Builder中正确绑定了插座(请检查myTableView是否为零)。如果不是这样,您是否在表格视图中获得了初始数据?如果没有,那么它可能意味着您没有将SearchOptions实例设置为表的数据源 - 在Interface Builder中检查它并在数据源方法上添加一些断点。

答案 2 :(得分:2)

我解决了!问题是由于其他原因,我无法重复使用我的单元格,这是我的代码:

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

NSString *kCustomCellID = [NSString stringWithFormat:@"MyCellID%d", indexPath];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCustomCellID];
if (cell == nil) 
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCustomCellID] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleBlue;

    if (selectOrDeselectInteger == 1) {
        cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    }
    if (selectOrDeselectInteger == 2) {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }
}

我之后不得不添加它:

    if (cell != nil) 
{
    if (selectOrDeselectInteger == 1) {
        cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    }
    if (selectOrDeselectInteger == 2) {
        cell.accessoryType = UITableViewCellAccessoryNone;          
    }
}

感谢大家的帮助。对不起,这段代码不在问题中。

答案 3 :(得分:1)

您的插座未在IB中连接。