2012-03-10 5 views
5

Soy bastante nuevo aquí. Tengo un problema con el nuevo popover deslizable de iOS 5.1 en UISplitView. (5.1 Antes de la vista controlador maestro se presentó en un popover, pero ahora simplemente se desliza en forma de la izquierda.) Cuando el dispositivo está en modo vertical y recibe una advertencia de memoria, el controlador de vista principal se descarga; y cuando presiono el botón de la barra de herramientas para deslizar en la vista maestra, se carga de nuevo. Sin embargo, después de la advertencia de memoria, se presenta en pantalla completa y no solo en el tamaño de la vista maestra original. (Cuando gire el dispositivo para el paisaje y volver a vertical, se pone de espaldas tamaño correcto.)UISplitView nuevo popover deslizable se convierte en pantalla completa después de la advertencia de memoria en iOS 5.1

Antes de iOS 5.1 que siempre se presentó en el popover con el tamaño correcto.

Cualquier persona tiene una idea, la forma de corregir esto?

He tratado de establecer el punto de vista del tamaño del marco principal, pero no resuelve el problema.

¡Cualquier ayuda es muy apreciada!

+0

Tengo la misma pregunta. ¿Se puede desactivar este control deslizante? Yo prefiero el popover. Quizás compilar con un SDK base antiguo es la solución, no lo sé. – Ricardo

Respuesta

5

que tenían el mismo problema, pero utiliza este código para resolver el problema:

-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController 
{ 
    aViewController.view.frame = CGRectMake(0, 0, 320, self.view.frame.size.height); 
} 

Al parecer, cuando se recibe una advertencia de memoria, el controlador de vista se libera, por lo que cuando se presenta de nuevo, obtiene su tamaño desde su vista principal, que es pantalla completa. Entonces solo tienes que reiniciar el cuadro cada vez que se carga.

+0

¡Guau! ¡Genial! Muchas gracias. Esto funciona perfectamente! :) – Joxy

0

que tenían el mismo problema.

Usted debe agregar a continuación el código de AppDelegate.

splitViewController.presentsWithGesture = NO;

+0

Descubrí que tenía que configurar esto antes de mostrar splitViewController (antes de agregar su vista a la vista de la ventana), o no tendría ningún efecto. En cualquier caso, esto no revierte la nueva ventana deslizante al viejo popover, simplemente elimina la posibilidad de mostrarla con un gesto de deslizamiento en la vista de detalles. – arlomedia

Cuestiones relacionadas