このrootViewControllerの上に新しいフルスクリーンのviewControllerを表示していない場合、私はUIWindowのrootViewControllerにmodalPresentationStyle = UIModalPresentationCurrentContext
を設定することでこれを達成できました。私は私の窓のrootViewControllerとしてUINavigationControllerと他のさまざまなカスタムView Controllerの両方でこれを試してみた
UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:YES completion:nil];
:私はこのような何かをしました。ウィンドウのrootViewControllerが何が起きているかを知っている限り、サブビューコントローラーはpresentViewController:animated:completion:
を呼び出すことができ、基になるビューをブラックアウトすることはできません。
ただし、ウィンドウのrootViewControllerの上に別のviewControllerを表示するとします。そして、この新しいviewControllerはmodalPresentationStyle = UIModalPresentationFullScreen
と表示されます(つまり、画面を占有します)。そして、一番上のviewControllerにmodalPresentationStyle = UIModalPresentationCurrentContext
を呼び出す必要があります。
だから要約する:あなたはUINavigationController持ちの場合
- - >のUIViewController(複数可)(彼らは押され、inとoutポップすることができる)、そして、あなたはUINavigationControllerに
modalPresentationStyle = UIModalPresentationCurrentContext
を設定します。
- UINavigationController - > UIViewController - > new-UIViewController(modalPresentationStyleをUIModalPresentationFullScreenに設定)がある場合は、新しいUIViewControllerに
modalPresentationStyle = UIModalPresentationCurrentContext
を設定します。
うまくいけば、これは皆さんにとってもうまくいきます。
あなたが提示しているViewControllerのプレゼンテーションスタイルは何ですか? – brynbodayle
@bbodayle、私は同じ問題を抱えています。両方のViewControllerですべてのプレゼンテーションスタイル/組み合わせを試しました。 –