带有TableView的子视图控制器笔尖

时间:2013-05-10 18:54:10

标签: ios

这是我第一次使用nib文件,我正在使用它们因为我要切换两个视图而不会使故事板膨胀以便于UI编辑。我带着儿童视图控制器,所以我可以分开一切。其中一个子控制器将包含表视图委托和数据源。所以我在IB中创建了一个带有单个视图的笔尖。我在表视图中拖动,但它已经做了一些奇怪的事情。

以下是拖入故事板视图控制器的表格视图:

normal storyboard tableview

以下是nib文件中的内容:

nib tableview

它仍然有默认的加州数据。为什么不说“Table View Prototype”?

无论如何,我试图添加一个单元格,但我不能。第一个图像是通常发生的,单元格是嵌套的。但是,在笔尖中,它不会进入表格视图。

normal cell insert nib cell insert

我想用自定义单元格制作表格视图,但我不知道出了什么问题,或者我错过了什么,因为这是我第一次使用笔尖。

2 个答案:

答案 0 :(得分:2)

  

它仍然有默认的加州数据。为什么不说“Table View Prototype”?

因为原型只是故事板的一个特征 - 而不是笔尖。

  

无论如何,我试图添加一个单元格,但我不能。第一个图像是通常发生的,单元格是嵌套的。但是,在笔尖中,它不会进入表格视图。

要使用nib设计的单元格类型以及不是来自故事板的表格视图,您必须为单独的单元格单独设置单独的笔尖(那里)必须 nib 中的其他内容。使用表视图注册nib(代码中);从那时起,当您将单元格出列时,表格视图将从笔尖加载单元格。请参阅本书的这一部分:

http://www.apeth.com/iOSBook/ch21.html#_custom_cells

答案 1 :(得分:1)

通常,您无法将表视图单元格嵌套在xib文件中的表视图中。使用xib文件自定义单元格的一种可能方法是创建UITableViewCell的子类,并将其设置为xib文件中自定义单元格的文件所有者(为单元格创建xib文件)。然后,您将能够在自定义单元格和自定义UITableViewCell子类中的UI元素之间创建出口。

在以下示例中,我将使用MyCustomCell作为包含单元格的xib文件的名称,以及从UITableViewCell派生的自定义类的名称。

要使用表视图注册单元格,请将其放在UITableViewController子类中:

- (void)viewDidLoad 
{
    [super viewDidLoad];

    UINib *cellNib = [UINib nibWithNibName:@"MyCustomCell" bundle:nil];
    [self.tableView registerNib:cellNib forCellReuseIdentifier:@"MyCustomIdentifier"];
    ...
}

最后,在您的tableView:cellForRowAtIndexPath:方法中,您可以使用其标识符将自定义单元格出列,并使用您之前创建的出口设置其可视属性:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomIdentifier"];

    // Configure cell using its outlets

    return cell;
}