У меня есть относительно простой вопрос, который я не могу понять.Как создать прозрачный, модальный UIViewController на iPhone iOS7 +?
Я внутри UIViewController (myViewController), который встроен где-то внутри иерархии UIViewController (где-то под родительским UITabBarController).
myViewController имеет кнопку. Когда эта кнопка нажата, я хочу наложить весь экран (включая весь goo из родительского UITabBarController) с помощью черного, полупрозрачного, модального UIViewController (myModalViewController) с другим запуском на нем.
Если я просто позвонить
[myViewController presentViewController:myModalViewController..]
визуальных из myViewController исчезает, как только переход закончится, тем самым побеждая точку полупрозрачный накладки.
Если установить myModalViewController в качестве контроллера представления ребенка о myViewController и добавить myModalViewController.view как подвид из myViewController.view, модальный контроллер представления с полупрозрачным черным фоном появляется под все кнопки на UITabBarController. Это плохо, потому что я хочу, чтобы весь экран был наложен.
Таким образом, вместо этого, я смотрю на самый верхний контроллер представления в иерархии и добавить myModalViewController как ребенок его таким образом:
UIViewController* root = myViewController;
while (root.parentViewController) {
root = root.parentViewController;
}
[root addChildViewController:myModalViewController];
[root.view addSubview:myModalViewController.view];
Если это правильный способ справиться с этим сценарием? Кажется, клочья.
Также, как заставить myModalViewController вести себя модально и проглатывать все жесты касания, чтобы все пользовательские интерфейсы под ним не реагировали на касания? Сейчас это происходит, и все мои попытки исправить это потерпели неудачу. Кроме того, myModalViewController и все UIViews в нем, похоже, не получают никаких уведомлений о касании, что-то-то-всегда.
Это не работает для меня (iOS8.1). Вы могли бы подумать, что это будет так просто, но контроллер представления все равно исчезает после завершения анимации. Я использую UIViewController, который не является корнем. Позвольте мне попробовать сделать это на корневом контроллере вместо этого ... – pfg2009
Это полностью работает. Спасибо Спасибо спасибо! Я делал это не по порядку (так как все эти константы UIModelXYZ выглядят визуально похожими друг на друга). Однако, используя тот же порядок, который вы указали, этот трюк красиво. – pfg2009
:) Рад узнать, что это сработало для вас. Счастливое кодирование :) – TonyMkenu