单个UIview中的多个UItableView的数据源

时间:2013-07-10 08:20:43

标签: ios ipad uitableview

我是一名新手ios程序员。目前我正在开发一个特定于ipad的项目。在这个项目中需要一些自定义绘图。所以我创建了UIview的子类,在{{1}中做了必要的绘图方法并在drawRect中通过UIView方法加载loadView子类。到现在为止一直没问题。现在我想做的是在我的UIViewController子类中创建一些下拉列表。为此我遵循了非常基本的approch.I做了一个按钮并在其下方放置了UIviewUITableView在加载时仍然隐藏。但是当用户触摸按钮时{{1}显示并显示从数组中获取的单元格中的数据。我也能够这样做。

我不能做的是为多个UITableView做同样的事情。对于另一个table view我做了这样的事情......

UITableView

在我运行程序后执行其他委托和数据源方法后,我得到了异常

table view

我认为这个方法存在问题

- (id)initWithFrame:(CGRect)frame
{
     arryData = [[NSArray alloc] initWithObjects:@"Samsung",@"HTC",@"Apple",nil]; //data for first table
     parameterData = [[NSArray alloc]initWithObjects:@"Tax Expenses",@"Pretax amount",@"assets",nil]; //data for second table
     tabletableForComany.dataSource = self;
     tableForComany.delegate = self;
     tableForParameter.delegate = self;
     tableForParameter.dataSource = self;
}

当我只设置一个表的Assertion failure in -[UITableViewRowData _updateSectionRowDataArrayForNumSections:] 时,我没有错误,但也没有显示任何表格单元格中的数据。 帮助将不胜感激。提前谢谢

2 个答案:

答案 0 :(得分:0)

正如您自己发现的那样,为多个UITableViews创建一个数据源/委托似乎存在问题。

我不太了解UITableViews的内部工作原理来解释断言失败,但我认为一个好的解决方案是使用多个数据源和委托,每个表视图一个。在多个stackoverflow帖子中描述了这种方法,this应该给你一个想法。

如果代码中的陈述通常被视为code smellstrategy pattern是一种清理代码的优雅方式。作为奖励,我希望它也可以解决您的问题。

答案 1 :(得分:0)

确保在数据源方法numberOfRowsInSection:

中正确返回行数

参考What does the iOS error "request for rect of invalid section" mean?