アプリを更新していくつかの機能を追加しましたが、テーブルビューで奇妙なことが起こっています。説明させてください:
テーブルビューがあり、行が押されたときに新しいビューコントローラーを開きたいです。
私はストーリーボードとセグエを使用しています。これが私が持っているものです:
行が押されたときにView Controllerを開くセグエ。
各行のコンテンツは個別の .xib ファイルにあります (そのままにしておくと、IOS 6.0 で強制終了するか、何を追加してもコンテンツを処理できます)。
したがって、私の EachCell.xib は次のとおりです。
これは各セルの私のコードです:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier=@"EachCell";
//this is the identifier of the custom cell
EachCell *cell = (EachCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
tableView.backgroundColor=[UIColor clearColor];
tableView.opaque=NO;
tableView.backgroundView=nil;
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EachCell" owner:self options:nil]; ######HERE IS THE SIGBART PROBLEM
cell = [nib objectAtIndex:0];
}
/*** bla bla bla**/
return cell;
}
これは、新しいView Controllerを押して開くためのものです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
/..rest of code ../
[self performSegueWithIdentifier:@"nameofsegue" sender:tableView];
}
SIGBARTの問題がどこにあるかについては言及しました。
EachCell は、.h、.m、.xib ファイルの名前であり、カスタム セルの再利用識別子です。セグエを設定できるように、ストーリーボードにテーブルセルを挿入しただけです。
奇妙なことに、IOS 6.0 では再生されますが、IOS 5.1 では再生されません。
それは私がios5.1で得るエラーです:
NSInternalInconsistencyException, the Nib data is invalid.