这是我第一次处理连接到自定义委托和数据源的 UITableView。直到今天,我还是连接到“自我”。这个问题的前传在这里。
所以,我有两个额外的 UIView。使用分段控制,我将上面提到的 UIView 之一放在 self.view 上...
创建了两个 UITableView 子类并将它们设置为委托和数据源。工作正常,没有泄漏或崩溃。检查在 segmentedControl 索引上初始化的类是否更改:
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
NSLog(@"Nominals got init");
}
return self;
}
NSLog 在更改段时起作用。
问题:
在我的自定义委托类中,我覆盖了 UITableViewDelegate 和 UITableViewDataSource 协议所需的方法。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 20;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *lbl=[[UILabel alloc]initWithFrame:CGRectMake(12, 12, 200, 12)];
lbl.text=@"some nominal";
cell.textLabel.text=@"Nominal";
[cell addSubview:lbl];
return cell;
}
目前我遇到了异常:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“UITableView 数据源必须从 tableView 返回一个单元格:cellForRowAtIndexPath:”
好吧,我的自定义委托类中的单元格不是我创建的 UITableView 的同一个单元格:
-(void)populateNominals:(int)subCountryID
{
NominalsTableViewDelegate *del=[[NominalsTableViewDelegate alloc]init];
[self setNominalsDelegate:del];
UITableView *nominalsTableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 372) style:UITableViewStylePlain];
[nominalsTableView setDelegate:nominalsDelegate];
[nominalsTableView setDataSource:nominalsDelegate];
[nominalsTableView reloadData];
[self.nominalsView addSubview:nominalsTableView];
}
我的错误是什么?先感谢您。