カスタムデリゲートとデータソースに接続された UITableView で作業するのはこれが初めてです。今日まで、私は「自分」とつながっていました。この質問の前日譚はこちらです。
したがって、2 つの追加の UIView があります。セグメント化されたコントロールを使用して、上記の UIViews の 1 つを self.view に配置しました...
2 つの 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 dataSource must return a cell from 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];
}
私の間違いは何ですか?前もって感謝します。