1

SDK のバージョンをアップグレードした後、cellForRowAtIndexPath が常に viewWillAppear の前に呼び出されることに気付きました。以前は、実行の順序が逆でした。viewWillAppear は常に cellForRowAtIndexPath の前に呼び出されていました。私のアプリケーション ロジックでは、後で cellForRowAtIndexPath で使用されるオブジェクトを初期化するために viewWillAppear を使用することが多いため、アプリケーションが頻繁にクラッシュします。

この変更に関する公式の失効を探してみましたが、成功しませんでした。初期化コードをviewDidLoadに移動できる可能性がありますが、この動作の変更に関するより良い解決策や詳細情報があるかどうかを確認したかった.

4

2 に答える 2

2

行を追加するだけです

[self.tableView reloadData];

viewWillAppear の最後に、あなたの問題は修正されます

于 2011-05-22T08:05:30.923 に答える
1

cellForRowAtIndexPath「前に呼び出されるviewWillAppear」のではなく、 [super viewWillAppear:animated]UITableView のデリゲートを呼び出します。

私は同じ間違いを犯し、それを見つけるのに多くの時間がかかりました.

于 2011-12-02T09:18:22.180 に答える