ios - present - Controlador de vista modal Swift con fondo transparente
show modal view controller programmatically swift (1)
Puedes hacerlo así:
En su controlador de vista principal:
func showModal() {
let modalViewController = ModalViewController()
modalViewController.modalPresentationStyle = .overCurrentContext
presentViewController(modalViewController, animated: true, completion: nil)
}
En su controlador de vista modal:
class ModalViewController: UIViewController {
override func viewDidLoad() {
view.backgroundColor = UIColor.clearColor()
view.opaque = false
}
}
Si está trabajando con un guión gráfico:
Simplemente agregue un Storyboard Segue con
Kind
establecido en
Present Modally
a su controlador de vista modal y en este controlador de vista configure los siguientes valores:
- Fondo = color claro
- Dibujo = Desmarque la casilla de verificación Opaco
- Presentación = Sobre contexto actual
Como
Crashalot
señaló en su comentario: Asegúrese de que el
segue
solo use
Default
para
Presentation
y
Transition
.
El uso del
Current Context
para la
Presentation
hace que el modal se vuelva negro en lugar de permanecer transparente.
Esta pregunta ya tiene una respuesta aquí:
Sé que este tema es bastante popular, pero soy un pequeño problema de iniciación en un lenguaje de programación, el hecho es que todavía no entiendo dónde pongo el código. Bueno, contaré todo el caso:
Estoy tratando de hacer un Swift modal un poco diferente de lo normal: al hacer clic en un botón, se muestra el ViewController (siguiendo el tipo modal) en la pantalla, pero con fondo transparente. Solo se mostrará la vista azul con etiqueta. Cuando se presenta este ViewController, es con fondo transparente, pero tan pronto como complete la transición, permanecerá con el fondo negro. Ya desactivé la opción opaca, y probé algunas opciones, pero nada esta solución de problemas.
Algunos me pueden ayudar?
El video es una prueba en el simulador del caso ( https://www.youtube.com/watch?v=wT8Uwmq9yqY ).
Estoy comenzando con Swift, y todavía estoy bastante perdido con la forma de programar en Xcode, leí una respuesta a una pregunta que tiene el siguiente código para resolver esto:
self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;
¿Dónde pongo este código?