繁体   English   中英

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

[英]Child View Controller Nib with TableView

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

这是拖动到情节提要视图控制器中的表视图的样子:

普通情节提要tableview

这是nib文件中的样子:

笔尖tableview

它仍然具有默认的加利福尼亚数据。 为什么不显示“表格视图原型”?

我仍然尝试向其中添加一个单元,但是没有。 第一个图像是通常发生的情况,单元是嵌套的。 但是,在笔尖中,它不会进入表格视图。

正常细胞插入笔尖细胞插入

我想使用自定义单元格创建表格视图,但是我不知道这是什么问题,或者我是否缺少某些东西,因为这是我第一次使用笔尖。

它仍然具有默认的加利福尼亚数据。 为什么不显示“表格视图原型”?

因为原型仅是情节提要的功能,而不是笔尖。

我仍然尝试向其中添加一个单元,但是没有。 第一个图像是通常发生的情况,单元是嵌套的。 但是,在笔尖中,它不会进入表格视图。

要使用不是来自情节提要的表格视图使用笔尖设计的单元格类型,您必须为该单元格 单独拥有一个笔尖(笔尖中必须没有其他东西 )。 在表视图中注册笔尖(使用代码); 从那时起,当您将一个单元出队时,表格视图将从笔尖加载该单元。 请参阅我的书的这一部分:

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

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

在以下示例中,我将使用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;
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM