2

私には がありUITableViewController、それUITableViewは 3 つのセクションで静的です。私は静的セクションを次のviewWillAppearように設定しようとしています:

-(void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]] detailTextLabel] setText:@"Stuff"];
    [[[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]] detailTextLabel] setText:@"Other stuff"];
    ...
}

最初の行はセクション 0 の行 0 にデータを入力しますが、2 行目 (実際には、最初のセクション以外の任意のセクションへの cellForRowAtIndexPath 呼び出し) は nil セルを返します。

問題を絞り込むためにいくつかのテストを行いました。

[self.tableView numberOfSections] // returns 3 - which is correct
[self.tableView numberOfRowsInSection:1] // return 4 - which is unique and correct for my second section

したがって、テーブルビューには正しいセクションがありますが、次のようになります。

[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] // nil

私は非常に混乱しています - 誰がそれを引き起こしているのか分かりませんか?

コードには特別なことは何もありません。ストーリーボードに作成された単純な静的テーブルで、3 つのセクションすべてが最初から設定されています。ビュー コントローラーは正しくサブクラス化された UITableViewController です。セクション 0 を完全に設定でき、すべてが期待どおりに機能します。

助けてくれてありがとう。

4

1 に答える 1

1

ビュー コントローラが最初に表示されたときにセルが画面に表示されない場合は、セルが設定されていない可能性があります。代わりに、関心のあるセルへのアウトレットを作成し、そのように値を変更する必要があります。

于 2012-06-06T12:29:33.013 に答える