8

標準的な方法 (画面の下から上にスライド) でユーザーに表示したいビューがあります。このビューの約半分は透明な背景で、下半分にはいくつかの入力フィールドがあります (キーボードがポップアップする様子を想像してください)。rootViewControllerを呼び出す[self presentViewController]と、ビューが上にスライドしますが、約 0.5 秒後に、以前は透明だったビューが代わりに黒に置き換えられます。これは、presentViewController と presentModalViewController の両方で発生します。この動作を変更するにはどうすればよいですか?

4

5 に答える 5

3

私の知る限り、モデル ビュー コントローラーを提示する場合、透明な背景はサポートされていません。コントローラーをルート ビュー コントローラーに保持し、単にサブビューをルート ビュー コントローラーに追加してみてください。

于 2012-10-29T05:57:37.087 に答える
0

最終的に、透明にすることはできないようです。このビューをルート ビュー コントローラーの境界外のサブビューとして追加し、アニメーション ブロックを使用して所定の位置にスライドさせることで、これを回避しました。追加のコードはそれほど多くありませんが、標準の iOS の動作を使用してそれを行うことができればよかったでしょう。

于 2012-10-30T03:28:37.643 に答える
0

でコントローラーを作成すると、少し遅れて黒い背景が表示されるという同様の問題がありました

    Disclaimer *vc = [[Disclaimer alloc]init];

私の問題を解決したのは、IBで対応するオブジェクトを作成し、そのストーリーボードIDを使用してviewcontrollerをインスタンス化することでした:

     Disclaimer *vc = (Disclaimer *)[self.storyboard instantiateViewControllerWithIdentifier:@"SBIDDisclaimer"];
[self presentViewController:vc animated:YES completion:nil];

IB経由で行うと、追加の初期化が行われると思います。

于 2013-12-15T20:51:14.453 に答える