代码之家  ›  专栏  ›  技术社区  ›  Jonah

tableView重新加载数据不起作用

  •  1
  • Jonah  · 技术社区  · 15 年前

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

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

    [self.tableView重载数据];

    你知道会发生什么吗?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Chris Suter    15 年前

    检查您是否已在Interface Builder中正确绑定插座(检查myTableView是否为nil)。如果不是这样,您是否在表视图中获取初始数据?如果没有,则可能意味着您尚未将SearchOptions实例设置为表的数据源在Interface Builder中检查此项,并在数据源方法上粘贴一些断点。

        2
  •  2
  •   Sixten Otto    15 年前

    你确定这不是真的吗- nil

    这是财产吗 tableView 合成到ivar myTableView

        3
  •  2
  •   Jonah    15 年前

    - (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;          
        }
    }
    

    谢谢大家的帮助。抱歉,问题中没有此代码。

        4
  •  1
  •   Jordan    15 年前