如何初始化添加到目标 c 中的 .xib 的 UITableView?

Posted

技术标签:

【中文标题】如何初始化添加到目标 c 中的 .xib 的 UITableView?【英文标题】:How can I initialize a UITableView added to a .xib in objective c? 【发布时间】:2017-01-23 21:28:11 【问题描述】:

我正在向我的视图控制器中添加一个 xib,例如:

MyControllerOfXib *myCOntrolXib = [[MyControllerOfXib alloc] initWithFrame:CGRectMake(width, height)];

在这个 xib 中,我有一个标签和一个 UItableView。 UIlabel很容易添加文字:

myCOntrolXib.label.text = @"someText";

但是如何初始化 tableView?那我需要什么,我可以用吗

 myCOntrolXib.table.delegate = self;

没有问题?

【问题讨论】:

【参考方案1】:

从您的子类中的 initWithFrame 方法初始化您的 UITableView。

之后,您可以在 mainViewController 上毫无问题地设置委托。

编辑: 您可以像往常一样在您的 XIB UITableView 上调用“重新加载”数据等。

【讨论】:

【参考方案2】:

只需执行以下操作:

CustomView *view = [[[NSBundle mainBundle] loadNibNamed: @"YourNibName" owner: nil options: nil] firstObject];

然后,不要忘记使用addSubview 方法将视图添加到主视图。无论如何,现在你可以这样做了:

[view.customProperty doSomething];

【讨论】:

【参考方案3】:

您可以使用自定义表格视图单元格来使用元素填充表格视图。 自定义 xib 将与 tableViewCell 关联,并在 cellForRowAtIndexPath 中编写以下代码来初始化单元格。

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

static NSString *simpleTableIdentifier = @"SimpleTableCell";

SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) 

    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
 

cell.nameLabel.text = [tableData objectAtIndex:indexPath.row];
cell.thumbnailImageView.image = [UIImage imageNamed:[thumbnails objectAtIndex:indexPath.row]];
cell.prepTimeLabel.text = [prepTime objectAtIndex:indexPath.row];

return cell;

simpleTableCell 是自定义 TableViewCell 类的名称。

如果您遇到任何问题,请参考此链接http://www.appcoda.com/customize-table-view-cells-for-uitableview/

【讨论】:

以上是关于如何初始化添加到目标 c 中的 .xib 的 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章