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