0

アプリを更新していくつかの機能を追加しましたが、テーブルビューで奇妙なことが起こっています。説明させてください:

テーブルビューがあり、行が押されたときに新しいビューコントローラーを開きたいです。

私はストーリーボードとセグエを使用しています。これが私が持っているものです:

絵コンテ行が押されたときにView Controllerを開くセグエ。

各行のコンテンツは個別の .xib ファイルにあります (そのままにしておくと、IOS 6.0 で強制終了するか、何を追加してもコンテンツを処理できます)。

したがって、私の EachCell.xib は次のとおりです。 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.
4

1 に答える 1

2

カスタム セル Xib ファイルで自動レイアウトが有効になっているようです。ペン先内で、自動レイアウト ボックスがその属性でチェックされていないことを確認します。デフォルトでは、このボックスはチェックされています。自動レイアウトは iOS6 の機能であるため、そのセルのレイアウトを微調整する必要がある場合があります

ここに画像の説明を入力

于 2013-01-25T23:58:25.853 に答える