2010-05-14 9 views
5

Si mi iPad está en modo Paisaje y se llama a presentModalViewController, la vista se convierte automáticamente en modo vertical. Alguna solución?problema con presentModalViewController

UIViewController * start = [[UIViewController alloc]initWithNibName:@"SecondView" bundle:nil]; 
start.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
start.modalPresentationStyle = UIModalPresentationFormSheet; 
[self presentModalViewController:start animated:YES]; 

En SecondView que ya ha añadido:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
return YES; 
} 
+0

esto me ha pasado a mí también - aún no lo he descubierto, así que espero que alguien responda :) – Conceptdev

+0

La solución es muy sencilla: entre en Interface Builder y conecte su ViewController correctamente con su clase. Eso funcionó para mí –

Respuesta

2

El problema es que su código de ejemplo está creando UIViewController en lugar de su clase derivada real. En otras palabras, en lugar usted debe crear su controlador como esto:

SecondViewController *start = [[SecondViewController alloc]initWithNibName:@"SecondView" bundle:nil]; 

Asumo la vista clase controlador se llama "SecondViewController" porque estuviera cargando una punta con un nombre similar.

Si no proporciona la instancia correcta, no hay forma de llamar a sus métodos de delegado.

0

Tiene que haber algo más en juego, porque la definición de IB no funciona para mí tampoco. ¿El OP original usa un splitViewController?

1

su UIViewController 'start' debe anular para que aparezca en la orientación correcta.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations. 
    return YES;//UIInterfaceOrientationIsLandscape(interfaceOrientation); 
} 

Tengo este problam justo ahora. Y lo resuelvo de esta manera. Espero que esto también te pueda ayudar.

Cuestiones relacionadas