0

在情节提要中,我创建了一个 UIViewController 并将两个 UIView 添加到同一个情节提要中。然后添加 UISegmentedControl 以启用这些 UIView 之间的切换。

在此处输入图像描述

我用来切换 UIView 的方法:

-(IBAction)segmentValueChaged:(id)sender
{
if(self.segment.selectedSegmentIndex==0)
{
    [self.coinageView removeFromSuperview];
    [self.view addSubview:nominalsView];
    [self populateNominals:self.subCountryID];
}
else 
{
    [self.nominalsView removeFromSuperview];
    [self.view addSubview:coinageView];
}
}

以及在 UIView 上添加 UITableView 的方法:

-(void)populateNominals:(int)subCountryID
{
UITableView *nominalsTableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 372) style:UITableViewStylePlain];
//nominalsTableView.dataSource = self;
//nominalsTableView.delegate = self;
[self.nominalsView addSubview:nominalsTableView];
}

这种方法效果很好,我在切换段时弹出了一个表格。

我的问题是,我在哪里可以为每个段(UIView)自定义每个 tableView?问题是我需要两个外观完全不同的表(不同的设计、cellForRowAtIndexPath 和不同的导航,而 didSelectRowAtIndexPath)。

先感谢您。

4

1 回答 1

0

如果您有“两个外观完全不同的表”,则将每个表视图的数据源和委托设置为不同的对象。意思是为每个表创建一个类/对象,作为表的数据源和委托。通常这些设置为“自我”,但没有什么可以说它们必须是那样。

如果您懒惰并且不关心漂亮的可重用代码,您可以将 if/else 语句放在所有 tableView 委托和 dataSource 调用中,并比较传入的 tableView 变量以查看它是什么表。但这有点难看,很容易搞砸。特别是如果它增长到超过 2 种不同类型的表。

于 2012-08-20T21:57:07.930 回答