如何在Storyboard中的自定义UITableViewCell中配置UITableView?

时间:2015-08-04 11:33:58

标签: ios objective-c uitableview storyboard custom-cell

我有一个layout,其中我将有2 UITableViews个自定义cells。第二个UITableView必须位于第一个内。

我的问题是:如何委派第二个UITableView

我可以将两者委托给我的ViewController吗?在这种情况下,它将使用相同的方法,我必须找出现在管理的UITableView

或者我必须将其委托给第一个UITableViewCell的自定义UITableView

任何建议都表示赞赏。

编辑:我不知道如何在这里实施解决方案,因为我有Storyboard。在我当前的UIViewController内,我将第一个delegate的{​​{1}}和dataSource设置为我的View Controller。

我的问题是我不知道如何设置第二个表视图的相同属性(它将在UITableView内)。我无法将它们设置为UITableViewCell(IB不允许这样做)。

IB在哪里以及如何设置?

3 个答案:

答案 0 :(得分:3)

更好的解决方案是将DataSource和Delegate实现从视图控制器中抽象出来,以便根据需要对每个tableview进行个性化(请注意,代码来自 objc.io 文章Lighter View Controllers

E.g。

void (^configureCell)(PhotoCell*, Photo*) = ^(PhotoCell* cell, Photo* photo) {
   cell.label.text = photo.name;
};
photosArrayDataSource = [[ArrayDataSource alloc] initWithItems:photos
                                                cellIdentifier:PhotoCellIdentifier
                                            configureCellBlock:configureCell];
self.tableView.dataSource = photosArrayDataSource;

然后你可以按如下方式使用它:

_data = record?.RltdPties?.DbtrAcct?.Id?.Item

UITableViewDelegate实现可以遵循相同的过程,为您提供非常干净,分离和解耦的代码库。您对两个tableview的要求将在本质上更容易实现。

答案 1 :(得分:2)

我的回答是

  For identifying two table view data source and delegate method is,better to set tag for the table views.

在tableview委托方法中设置以下编码。

 if(tableView.tag==0)
 {
 }
 else
 {
 }

您也可以通过为这些表格视图指定不同的名称来改变这种情况。

 if(tableView==FirstTableView)
 {
 }
 else
 {
 }

答案 2 :(得分:1)

您只需检查每个委托方法的表条件

使用此代码注册自定义单元格。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView == self.yourFirstTable)
{
    CustomCell *cell=[tableView dequeueReusableCellWithIdentifier:@"cellModifier"];
    // your code
}
else
{
    // second table cell code
}
return cell;
}



 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
   { 
        if(tableView == self.yourFirstTable)
        {
             // first tableView number of row return
        }
        else
        {
             // second table number of row return
        }   
   }

TableView

中创建原型单元格

enter image description here

并像这样设置CellReusableId

enter image description here