使用xib自定义UITableViewCell

时间:2015-02-02 04:40:56

标签: ios objective-c uitableview xib

我有一个自定义的UITableViewCell链接到UITableVIewCell xib。当我运行应用程序时,我收到错误。

我做了很多搜索,然后我想出了this。当我尝试从单元格视图拖动到文件所有者时,看起来该视图不可点击或可拖动。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CategorieUITableVIewCell"];
    if (cell == nil) {
        UIViewController *tempVC = [[UIViewController alloc] initWithNibName:@"CategorieUITableVIewCell" bundle:nil];
        cell = (CategorieUITableVIewCell *)tempVC.view;
    }

    return cell;
}




Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "CategorieUITableVIewCell" nib but the view outlet was not set.'

不确定这是否足够清楚,但如果您有任何疑问,请询问。

3 个答案:

答案 0 :(得分:2)

这对SURE有用。您可以在cellForRowAtIndexPath方法中尝试此操作。

 static NSString *categoryTableIdentifier = @"CategoryUITableViewCell";

CategoryUITableViewCell *cell = (CategoryUITableViewCell *)[tableView     dequeueReusableCellWithIdentifier: categoryTableIdentifier];
if (cell == nil)
{
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CategoryUITableViewCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
}

cell.CustomedLabel.text=[YourArray objectAtIndex:indexPath.row];
return cell;

需要注意的重要事项是,在自定义单元格类中,当您使用自定义单元格时,必须将插座连接到“表视图单元”而不是“文件所有者”

答案 1 :(得分:0)

请检查标识符是否与您在xib中指定的标识符匹配。然后只需替换

if (cell == nil) {
    UIViewController *tempVC = [[UIViewController alloc] initWithNibName:@"CategorieUITableVIewCell" bundle:nil];
    cell = (CategorieUITableVIewCell *)tempVC.view;
}

代码

if (cell == nil) {
    cell = [[[NSBundle mainBundle] loadNibNamed:@"CategorieUITableVIewCell" owner:nil options:nil] objectAtIndex:0];
}

答案 2 :(得分:0)

检查xib中的单元格标识符和类名称。