テキスト ファイルの内容に基づいてラベルとテキスト フィールドをプログラムで作成するアプリがあります。ビュー コントローラーが読み込まれるたびに、毎回異なるテキスト フィールドとラベルが作成されます。私の問題は、View Controllerを追跡する必要があるため、View Controllerを解放せずにラベルとテキストフィールドをクリアする必要があることです。を試しself.viewController = nil
ましたが、メモリリークが発生することは間違いありません。ビューのすべてのサブビューを削除する方法はありますか?
2 に答える
3
グレッグが言いたかったことはこれです:
for (UIView *subview in self.view.subviews) {
[subview removeFromSuperview];
}
ただし、これは期待どおりに機能しない可能性があります。これは、for ループで配列を反復処理しているときに配列を変更するときに、Objective C がそれを好まないためです。より安全な選択は次のとおりです。
while ([self.view.subviews count] > 0) {
[[self.view.subviews lastObject] removeFromSuperview];
}
于 2010-09-03T04:51:29.637 に答える
0
という名前のビューがある場合view
、次のコードを使用してビューからすべてのサブビューを削除できるはずです。
for (UIView *subview in view) {
[subview removeFromSuperview];
}
于 2010-09-02T20:09:23.450 に答える