1

使用[self presentModalViewController:videoViewController animated:YES];すると複数のビューが積み上げられますか?

videoViewController では、いくつかの UIWebView を読み込んでおり、それぞれがビデオに読み込まれます。そのビューには、カテゴリを変更できるボタンがあります。カテゴリ ボタンをクリックすると、ポップオーバー ビューが表示され、そのビュー内にはさまざまなカテゴリのいくつかのボタンがあります。それらのボタンの 1 つが押されると、次のようにして videoViewController に戻ります。

VideoViewController *videoViewController= [self.storyboard instantiateViewControllerWithIdentifier:@"VideoVC"];
[self presentModalViewController:videoViewController animated:YES];

どちらが機能し、カテゴリのポップオーバー ビューを閉じて、別のビデオでの videoViewController の読み込みに戻ります。しかし、カテゴリを数回変更すると、「did receive memory warning」メッセージを受け取った後、アプリがクラッシュし始めます。

すべてのビデオに読み込まれるカテゴリ「すべて」があり、そのようなメッセージは表示されませんが、カテゴリを数回変更します (もちろん、各カテゴリはフィルタされているため、より少ないビデオに読み込まれます) 警告が表示されます。だから私の本当の質問は、カテゴリを変更して電話をかけると、カテゴリ[self presentModalViewController:videoViewController animated:YES];を変更するたびにビューが増えるだけですか? たとえば、カテゴリを 5 回変更すると、5 つの videoViewController ビューが重なり合うことになりますか? もしそうなら、これを避ける最善の方法は何ですか?

代わりに、それが違いを生むかどうかを確認しようとし[self presentModalViewController:videoViewController animated:YES];ましたが、viewViewController がリロードされず、カテゴリのポップオーバー ビューが閉じられません。

それが違いを生む場合、これはiPadアプリ用です。

ありがとう。

4

1 に答える 1

0

この行を使用するたびに:

VideoViewController *videoViewController= [self.storyboard instantiateViewControllerWithIdentifier:@"VideoVC"];

VideoViewController とそのすべての UIWebviews の新しいインスタントを作成しています。必要なのは、Objective-C のデリゲート パターンを使用することです。ユーザーがポップオーバー ビューでボタンの 1 つを選択した場合、VideoViewController の元のインスタントへのコールバックを作成し、ユーザーが選択したボタン (たとえば、ある種の番号) を返し、そこから変更を処理する必要があります。

于 2012-07-16T11:45:22.363 に答える