如何初始化添加到目标 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?的主要内容,如果未能解决你的问题,请参考以下文章

链接 NIB/Xib - 目标 C - xCode

无法将 xib 文件添加到目标成员资格

如何在 Tab bar 控制器中使用一个 Xib 并创建多个视图控制器? [目标-C]

iOS Objective C - 与 UI 相关

如何将 nib/xib 转换为目标 C 代码?

如何使用大小类和自动布局在 Xib 中水平对齐两个 UI 按钮