我是一名新手ios程序员。目前我正在开发一个特定于ipad的项目。在这个项目中需要一些自定义绘图。所以我创建了UIview
的子类,在{{1}中做了必要的绘图方法并在drawRect
中通过UIView
方法加载loadView
子类。到现在为止一直没问题。现在我想做的是在我的UIViewController
子类中创建一些下拉列表。为此我遵循了非常基本的approch.I做了一个按钮并在其下方放置了UIview
。UITableView
在加载时仍然隐藏。但是当用户触摸按钮时{{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:]
时,我没有错误,但也没有显示任何表格单元格中的数据。
帮助将不胜感激。提前谢谢
答案 0 :(得分:0)
正如您自己发现的那样,为多个UITableViews创建一个数据源/委托似乎存在问题。
我不太了解UITableViews的内部工作原理来解释断言失败,但我认为一个好的解决方案是使用多个数据源和委托,每个表视图一个。在多个stackoverflow帖子中描述了这种方法,this应该给你一个想法。
如果代码中的陈述通常被视为code smell。 strategy pattern是一种清理代码的优雅方式。作为奖励,我希望它也可以解决您的问题。
答案 1 :(得分:0)
确保在数据源方法numberOfRowsInSection:
参考What does the iOS error "request for rect of invalid section" mean?