Mostrar clearColor UIViewController sobre UIViewController

tengo unUIViewController ver como una subvista / modal encima de otraUIViewController vista, como que la subvista / modal debe ser transparente y cualquier componente que se agregue a la subvista debe ser visible. El problema es que la subvista muestra un fondo negro en lugar de tener un color claro. Estoy tratando de hacerUIView Como fondo claro no color negro. ¿Alguien sabe qué está mal con eso? Cualquier sugerencia apreciada.

FirstViewController.m

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];

[vc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentModalViewController:vc animated:NO];  

SecondViewController.m

- (void)viewDidLoad 
{
     [super viewDidLoad];
     self.view.opaque = YES;
     self.view.backgroundColor = [UIColor clearColor];
}

RESUELTO: He arreglado los problemas. Está funcionando muy bien tanto para iPhone como para iPad. Controlador de vista modal sin fondo negro solo claroColor / transparente. Lo único que necesito cambiar es que reemplacéUIModalPresentationFullScreen aUIModalPresentationCurrentContext. ¡Qué simple es eso!

FirstViewController.m

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
vc.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:NO completion:nil];

DARSE CUENTA: Si está utilizando unmodalPresentationStyle propiedad denavigationController:

FirstViewController.m

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
vc.view.backgroundColor = [UIColor clearColor];
self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:NO completion:nil];

AVISO: la mala noticia es que la solución anterior no funciona en iOS 7. La buena noticia es que solucioné el problema para iOS7. Le pedí ayuda a alguien y aquí está lo que dijo:

Cuando se presenta modalmente un controlador de vista, iOS elimina los controladores de vista que se encuentran debajo de la jerarquía de vistas por la duración que se presenta. Si bien la vista de su controlador de vista presentado modalmente es transparente, no hay nada debajo, excepto la ventana de la aplicación, que es negra. iOS 7 introdujo un nuevo estilo de presentación modal,UIModalPresentationCustom, eso hace que iOS no elimine las vistas debajo del controlador de vista presentado. Sin embargo, para usar este estilo de presentación modal, debe proporcionar su propio delegado de transición para manejar las animaciones de presentación y de descarte. Esto se describe en la charla 'Transiciones personalizadas usando controladores de vista' de WWDC 2013https://developer.apple.com/wwdc/videos/?id=218 que también cubre cómo implementar su propio delegado de transición.

Puede ver mi solución para el problema anterior en iOS7:https://github.com/hightech/iOS-7-Custom-ModalViewController-Transitions

Respuestas a la pregunta(16)

Su respuesta a la pregunta