1

私はいくつかの方法を試しましたが、何かが足りないようです..

私が使用するコードは次のとおりです。

- (void)configureView
{
// Update the user interface for the detail item.
  if (self.detailItem) {
    for (int idx=0; idx<16; idx++) {
        NSIndexPath *indexPath = [[NSIndexPath alloc] initWithIndex:idx];
        [self.tableView cellForRowAtIndexPath:indexPath].detailTextLabel.text = [param objectAtIndex:idx];
    }
    self.detailDescriptionLabel.text = [self.detailItem description];
  }
}

これをviewDidLoadで呼び出します。私のテーブルビューには16個の静的セルがあり、標準の「サブタイトル」タイプのセルを使用しているため、その面でカスタマイズは必要ありません. textLabel.textは設計時に入力されます。また、私のテーブルビューはtableViewControllerにあります。テーブルビューの標準的な人口も試しましたが、静的セルはその方法に同意しないようです。

私は何を間違っていますか?


@jrturton何が起こっているのかを確認するためにいくつかの変更を加えました:

for行の下に次の 3 行を追加して、そこに何かがあるかどうかを確認しました。

        UITableView *tv = self.tableView;
        UITableViewCell *cell = [tv cellForRowAtIndexPath:[NSIndexPath indexPathForRow:idx inSection:0]];
        NSString *label = [[NSString alloc] initWithString:cell.textLabel.text];

まず、テレビが正しく割り当てられていることがわかります。しかし、それ以外のセルとラベルは空になります。テレビでも行情報がないようです..

tableviewにはデータソースとデリゲートがtableviewcontrollerに割り当てられているためでしょうか..そのようなものであってはならないと聞いたと思います...


@jrturtonここにあります:

静的セル

テーブルビュー

絵コンテ

お役に立てれば。

4

1 に答える 1

6

一部のログでは、インデックス パスが無効であるため、セルが返されていないことがすぐにわかります。

UITableView で使用する NSIndexPath を作成するには、次のメソッドを使用します。

[NSIndexPath indexPathForRow:idx inSection:0];

テーブルが理解できるように、インデックス パスには行とセクションが含まれている必要があります。

viewWillAppear:また、viewDidLoad ではなく、これを呼び出す必要があります。静的テーブルは、初期段階ではデータが取り込まれていません。そして、あなたは最初に電話しなければなりません[super viewWillAppear:animated]

于 2012-05-02T08:18:17.553 に答える