我一直在尝试实现一个界面,该界面在UITableView
s 中显示数据,并在 a 中使用自定义UITTableViewCell
s ScrollView
(为了清楚起见,链接到 a Page Control
)。
我发现了一些教程,它们展示了如何将这些功能彼此分开但不是一起实现,我并没有真正找到关于如何将几个自定义加载UITableView
到控制器中的任何内容。我的基本方法现在归结为UIViewController
's内部的这个viewDidLoad
:
for (int i = 0; i < 4; i++) {
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
SceduleTableView *sceduleTable = [[SceduleTableView alloc] initWithFrame:frame];
[sceduleTable setDelegate:sceduleTable];
[sceduleTable setDataSource:sceduleTable];
[self.scrollView addSubview:sceduleTable];
}
我一直在测试 4 页,但是在我解决这个问题后,这些将变成动态数量。
SceduleTableView 继承自UITableView
并具有从本地 sqlite 数据库中获取包含对象的数组的数据源。我已经完成了所有 SceduleTableViews 为它们中的每一个加载数据的部分,但目前构建失败并返回此错误:
2012-08-13 15:43:18.975 basis[2055:f803] -[SceduleTableView tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x8bc4800
2012-08-13 15:43:18.976 basis[2055:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SceduleTableView tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x8bc4800'
该功能并没有真正做太多,但即使是 NSLog 也永远不会到达:
- (NSInteger)numberOfRowsInSection:(NSInteger)section
{
NSLog(@"Should have %d rows", sceduleItems.count);
return sceduleItems.count;
}
而且我知道我尝试填充表格的数组都不是空的,而且 SceduleTableView 实例也不是零(我读到这可能是问题所在)。这些日志为每个 SceduleTableView 返回这个
NSLog(@"Array sceduleItems contains %d", sceduleItems.count);
NSLog(@"Trying to reload. Self = %@", self);
[self reloadData];
2012-08-13 15:49:32.183 basis[2259:f803] Array sceduleItems contains 340
2012-08-13 15:49:32.184 basis[2259:f803] Trying to reload. Self = <SceduleTableView: 0xbabb800; baseClass = UITableView; frame = (960 0; 320 440); clipsToBounds = YES; layer = <CALayer: 0x6e29660>; contentOffset: {0, 0}>
我是 iOS 开发的新手,老实说,我真的不确定我的方法是否正确。非常感谢您的反馈!