0

非推奨の presentModalViewController を presentViewController に置き換えるためにアプリを更新する一環として、いくつかのテストを行いました。私が見つけたのは気がかりなことでした。presentModalViewController は常に機能し、機能することに疑問の余地はありませんが、presentViewController メソッドでは VC がまったく表示されないことがよくあります。アニメーションはなく、表示されません。私の loadView は問題なく呼び出されますが、実際のビューは表示されません。

だからここに私がやっていることがあります:

  • ユーザーがメイン ビュー コントローラーのボタンをタップします。
  • そのタップのコールバックで、新しいビュー コントローラーを作成し、上記のように表示します。
  • VC が表示されることはありません (断続的な問題ですが) が、この VC がオーディオの再生を開始するため、次のように loadView が呼び出されたことがわかります。

ボタンを押したときのコールバックは次のとおりです。

  - (void) buttonTapped: (id) sender {
  VC *vc = [[VC alloc] init];
  [self presentViewController: vc animated:YES completion: nil];
  [vc release];
  }

VC クラスのロードビューは次のとおりです。

 - (void) loadView {
 UIView *v = [UIView new];
 self.view = v;
 [v release];
 ... create and addsubview various buttons etc here ...
 }

ありがとう。

4

1 に答える 1

2

関数を呼び出すコントローラーのビューが現在表示されている (または現在表示されているビューの親である) ことを確認してください。

于 2013-05-18T19:26:03.323 に答える