1

(もともと私はこれを投稿しApple Developer Network、4 日以内に応答がなかったので、ここにコピー/貼り付けています)

ARC が有効になっています。

私のクラスには、UITableViewControllerプロパティがあります。

@property (nonatomic, strong) UITableViewController* tableViewControllerSectionMenu;

のテーブル ビューを保持するために使用されますUIPopoverController

このコードはUITableViewController、デリゲートとデータ ソースを作成して設定します。viewDidLoad:

self.tableViewControllerSectionMenu = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
self.tableViewControllerSectionMenu.tableView.dataSource = self.dataSource;
self.tableViewControllerSectionMenu.tableView.delegate = self;

これは、メモリ警告が発生するまで正常に機能します。

その後、テーブルは空白です。

reloadDataポップオーバーが呼び出される場所に配置しようとしましたが、何も変わりません。

なぜこれが起こっているのか、これを修正する方法を誰かが知っていますか?

グーグルでいくつかの解決策を見つけましたが、私の場合はどれもうまくいきませんでした。

4

2 に答える 2

1

メモリの警告が表示されると、データが消去されたと思います。didReceiveMemoryWarningどちらかを実装しましたか、それともviewDidUnload偶然ですか?

于 2012-12-20T08:55:56.423 に答える
0

メモリ警告メッセージが受信されると、現在画面に表示されていないすべてのビューが削除されます。それらは、必要に応じて後で再作成することになっています。

それらを再作成するということは、デリゲートとデータ ソースを再度アタッチすることも意味します。ViewController X でメモリ警告が表示され、そのビューが画面に表示されていたため、テーブル ビューが消去されました。

しかし、私は X から移動していなかったので、デリゲートとデータ ソースは で行われたように再度接続されませんでしたviewDidLoad

X から一歩戻るのを回避するために、viewDidLoadデリゲートとデータ ソースをアタッチするテーブル ビューの新しいクラスを作成しました。

于 2013-01-16T11:25:58.180 に答える