2010-09-07 10 views
5

Presento un controlador de vista modal que es un controlador de barra de pestañas con un controlador de navegación dentro.Diferente transición en presentModalViewController: animated:

El problema es que mi primera vista tiene un fondo negro y quiero que la nueva vista tenga un fondo blanco.

Esto significa que o bien tengo que tener el controlador de vista modal con un fondo transparente (hasta que complete la animación "deslizar hacia arriba" cuando se muestra el fondo blanco) O tengo que configurar el fondo del controlador de navegación como blanco para hacerlo no transparente

Esto resulta en que tengo una franja adicional de color blanco SOBRE LA barra de navegación (donde va el estado de la red/estado de la batería/barra de tiempo). No puedo deshacerme de esto. :(

Así que si podía voltear la vista en, o se desvanecen en, o se deslice por la derecha o la izquierda o algo que sería mucho mejor estéticamente.

¿Hay alguna manera de hacer esto? o voy solo hay que ajustar "animada:" a nO

Gracias

Respuesta

10

yo no entendía lo que su difícil situación con los diferentes fondos de color se trata de fondos opacos en sus puntos de vista, sobre todo animando queridos, hacen que el?. la aplicación se ejecuta más rápido. Ahora sobre las transiciones, antes de llamar a presentModalViewController, inserte una de las siguientes líneas:

modelViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
modelViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
modelViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
modelViewController.modalTransitionStyle = UIModalTransitionStylePartialCurl; 

Cualquiera de los anteriores cambiará el estilo de transición (aunque el PartialCurl dará como resultado un bit blanco de la última vista aún presente en la esquina superior; parece no documentarse, aunque es utilizado por la aplicación Mapas). Puede que tenga que jugar con lo que se establece el modalTransitionStyle.

Deslizarse desde la izquierda o la derecha es parte del controlador de navegación. Cambiar los fondos probablemente no sea lo que desea al trabajar con el controlador de navegación. .

también, que tira adicional por encima de la vista del modelo se va a aparecer no importa la forma que la transición en Es molesto, pero puede ser más vienen de la siguiente manera:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    navigationController.view.frame = CGRectMake(0, 0, 320, 460); //<--This line 
} 
+0

Básicamente yo no quería para tener un fondo transparente, pero el fondo blanco muestra la molesta franja blanca en la parte superior. Esa última parte de tu respuesta es lo que estaba buscando. Gracias :) –

Cuestiones relacionadas