Pude lograr esto configurando modalPresentationStyle = UIModalPresentationCurrentContext
en el RootViewController de mi UIWindow, SI no he presentado ningún nuevo ViewControllers de pantalla completa sobre este rootViewController. Hice algo como esto:
UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:YES completion:nil];
He intentado esto con tanto un UINavigationController como RootViewController de mi ventana y varios otros controladores de vista personalizada. Parece que mientras el control raíz de la ventana conozca lo que está sucediendo, cualquier subcontrol de vista puede llamar al presentViewController:animated:completion:
sin oscurecer la vista subyacente.
Sin embargo, supongamos que presenta otra viewController en la parte superior del RootController de su ventana. Y este nuevo viewController se presenta con modalPresentationStyle = UIModalPresentationFullScreen
(es decir, ocupa la pantalla), luego debe llamar al modalPresentationStyle = UIModalPresentationCurrentContext
en ese viewController de la parte superior.
Así que para recapitular:
- Si tiene UINavigationController -> UIViewController (s) (que podrían ser empujados y se metió dentro y fuera), a continuación, establecer
modalPresentationStyle = UIModalPresentationCurrentContext
en el UINavigationController.
- Si tienes UINavigationController -> UIViewController -> new-UIViewController (con modalPresentationStyle configurado en UIModalPresentationFullScreen), configuras
modalPresentationStyle = UIModalPresentationCurrentContext
en el nuevo UIViewController.
¡Espero que esto también les sirva a ustedes! sugerencias
¿Cuál es el estilo de presentación del ViewController que está presentando? – brynbodayle
@bbodayle, estoy teniendo el mismo problema, y probé todos los estilos de presentación/combinaciones en ambos ViewControllers. –