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

时间:2017-01-23 21:28:11

标签: ios objective-c uitableview xib

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

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

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

myCOntrolXib.label.text = @"someText";

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

 myCOntrolXib.table.delegate = self;

没有问题?

3 个答案:

答案 0 :(得分:1)

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

之后,您可以在mainViewController上设置代理没有问题。

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

答案 1 :(得分:1)

只需执行以下操作:

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

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

[view.customProperty doSomething];

答案 2 :(得分:0)

您可以使用自定义表格视图单元格来填充表格视图中的元素。 自定义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/