Loco con xCode.

Hola a todos.

Estoy empezando a desarrollar para iOS y Xcode me trae de cabeza.
Resumiendo, quiero hacer que mi programa cuando cambia de orientación llame a otra View Controller que he diseñado con el StoryBoard para el modo landscape. Soy incapaz de que me llame a la segunda ventana. No sé como coño hacerlo XD
Es simple, si cambia a modo Landscape, se ponga esta segunda view controller!
Alguna sugerencia?
Gracias.
Donato escribió:Hola a todos.

Estoy empezando a desarrollar para iOS y Xcode me trae de cabeza.
Resumiendo, quiero hacer que mi programa cuando cambia de orientación llame a otra View Controller que he diseñado con el StoryBoard para el modo landscape. Soy incapaz de que me llame a la segunda ventana. No sé como coño hacerlo XD
Es simple, si cambia a modo Landscape, se ponga esta segunda view controller!
Alguna sugerencia?
Gracias.


- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
   
    if (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
    // lo añades al navigation controller, o lo presentas como modalviewcontroller, como prefieras   
    }
}


Si tu clase no es subclase de UIViewController (la cual debería), también puedes registrarte a las notificaciones de cambio de orientación.

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
Seguro que quieres hacer eso? Si la vista es tocha igual tienes tirones. Además, que leches, no es la forma de hacerlo xD

Lo mejor es que configures el comportamiento de las vistas con los cambios de orientación. Lo tienes en interface builder.
Stylish escribió:... Lo tienes en interface builder.


Te importaría decirme dónde? Es que me estoy volviendo loco xD
Pincha en el xib para que se abra IB (o en tu Storyboard, que yo no uso), y en las pestañas que te aparecen relacionadas con una vista, la 5º, la que tiene una regla, te aparece un cuadradillo que debajo pone "Autosizing". Ahí es.

Necesitarás leer docu, porque está poco claro xD
O soy muy gañán o en XCode 4.3.2 no aparece nada de eso :(
Eso ya lo sabia pero no es lo que quiero hacer. Básicamente quiero al colocarle en posición horizontal muestre otra view controller. El manejo de layouts ya lo sabia!! Gracias igualmente!
¿Entonces quieres meter datos distintos en la vista dependiendo de la orientación? Siendo asi, tal vez lo razonable sea tener cargados los dos UIViewControllers y suscribirte a la notificación de cambio de orientación. De esta forma consumirás mas memoria puntual pero la transición debería ser fluida.

Otra solución podría ser meter las subvistas ocultas y al rotar desocultar las que vayan corrspondiendo. También conseguirías fluidez, pero tendrías que ser cuidadoso con tu modelo de datos, sobre todo si la lógica de las vistas es compleja.

De todas maneras esto es poco ortodoxo. Replanteate como lo estás haciendo.
8 respuestas