Почему presentModalViewController: animated: делает фон черным? - PullRequest
3 голосов
/ 31 августа 2011

Я использую presentModalViewController: animated: , и хотя функционально он работает правильно визуально, у него есть артефакт, который я хочу удалить.Когда модально представленный viewController появляется, его родительский viewController полностью скрыт, а фон становится черным.Это не то, что я хочу.Мой дочерний вид viewController является полупрозрачным, и я хочу показать родительский вид viewControllers за ним.Эффект, который я хочу, - это лист кальки, скользящий по фону.

Я предположил, что presentModalViewController: animated: поддерживает это.Разве это не так?

Спасибо,
Даг

Ответы [ 3 ]

9 голосов
/ 31 августа 2011

NavigationController и контроллеры вида спроектированы таким образом, что может отображать только один контроллер вида одновременно . Когда новый контроллер представления будет нажат / представлен, предыдущий контроллер представления будет скрыт системой. Поэтому, когда вы уменьшите альфа модального вида, вы, возможно, увидите фоновый цвет окна ( черный цвет , который вы видите сейчас).

Если вы хотите, чтобы полупрозрачный вид скользил по основному виду, вы можете добавить его как subView основного вида и анимировать его, используя UIView Animations .

7 голосов
/ 30 ноября 2011

Это может дать вам то, что вы хотите:

presentingViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
2 голосов
/ 04 августа 2016

presentingViewController.modalPresentationStyle = UIModalPresentationCurrentContext; не работает после ios7, вы можете исправить это после

presentingViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;<br> presentingViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

, затем оба: [appViews.rootViewController presentViewController:presentingViewController animated:YES completion:nil];

...