1. ホーム
  2. ios

[解決済み] iOSです。背景を透明にしたモーダルViewController

2022-04-14 23:06:11

質問

背景を透明にして、ビューコントローラをモーダルに表示しようとしています。私の目標は、提示するビューコントローラと提示されたビューコントローラの両方のビューを同時に表示させることです。問題は、プレゼンテーションのアニメーションが終了すると、プレゼンテーションのビューコントローラのビューが消えてしまうことです。

- (IBAction)pushModalViewControllerButtonPressed:(id)sender
{
    ModalViewController *modalVC = [[ModalViewController alloc] init];
    [self presentViewController:modalVC animated:YES completion:nil];
}

サブビューとしてビューを追加すればいいのは分かっているのですが、なぜかこの解決策は避けたいのです。どうしたら解決できるでしょうか?

どのように解決するのですか?

以下のコードはiPadでのみ動作します。

self.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentModalViewController:modalVC animated:YES];

私なら、サブビューを追加して行きます。

ここに非常に良い議論があります。特にコメントを見てください。答えだけでなく。

モーダルビュー

私があなただったら、それはしない。私ならサブビューを追加してやります。そのほうが、いろいろとコントロールしやすいような気がします。

EDITです。

Paul Linsayさんがおっしゃっているように、iOS 8以降では、必要なのは UIModalPresentationOverFullScreen を、表示される ViewController の modalPresentationStyle に設定します。これは、navigationBar と tabBar ボタンにも当てはまります。