2010-10-04 20 views

Respuesta

27

Puede adjuntar su nueva vista a su ventana directamente.

[[[UIApplication sharedApplication] keyWindow] addSubview:myNewView]; 
+1

El problema que tengo con esta solución es que la superposición aparece al revés, y no gira. ¿Alguien sabe una solución para esto? – elsurudo

+0

La orientación solo se pasa al primer controlador de vista agregado a su ventana. Si solo agrega una vista (sin el controlador), primero debe establecer la rotación de la barra de estado (consulte las respuestas aquí: http://stackoverflow.com/questions/4436530/launching-app-in-landscape-orientation- causes-rotation-on-launch) –

12

La solución anterior por Henrik P. Hessel es bueno, pero hay un problema con esa solución. El problema ya se menciona por elsurudo en el comentario debajo de la respuesta.

El problema que tengo con esta solución es que la superposición aparece al revés , y no gira.

Me enfrenté al mismo problema e intenté diferentes cosas y obtuve una solución para eliminar ese problema.

La solución es simple. Puede agregar esa myNewView a la vista UITabBarController.

[self.tabBarController.view addSubview:myNewView]; 

Espero que sea útil para futuros visitantes.

2
UIView *modal = [[UIView alloc] initWithFrame:self.view.window.frame]; 
[self.view.window addSubview:modal]; 

Este podría ser el mismo que el [[UIApplication sharedApplication] keyWindow] mencionado anteriormente. Pero me gusta hacer referencia a ella a través de la vista actual.

0

Me gustó mucho lo que Chase, Robert había escrito aquí, así que pensé para proporcionar la versión Swift 3. así:

if let window = view.window { 
     let subView = UIView(frame: window.frame) 
     window.addSubview(subView) 
    } 

añadí la condición así, por lo que no recibe un choque si no hay ventanas

2

Inspirado por rdelmar's answer to another question, le recomiendo que coloque su UITabBarController en el Contenedor Ver otros ViewController. A continuación, agregue su hud en la vista ViewController.

screenshot for answer

+0

Cuando hace referencia a la respuesta de otra persona, debe mencionarlos * por su nombre *. He editado tu respuesta para cumplir con esto. Para obtener más información, consulte nuestras [pautas de referencia] (https://stackoverflow.com/help/referencing). –

Cuestiones relacionadas