Pregunta

Me gustaría hacer popover ver visibles cada vez que el usuario cambia de opinión del paisaje a la vista vertical en UIsplitView de IPAD. Aunque el usuario puede hacerlo visible haciendo clic en botón de la barra pero yo quiero que esto sea automatizado para el modo de retrato.

¿Fue útil?

Solución

Dentro - método "(BOOL) shouldAutorotateToInterfaceOrientation", cheque para el dispositivo orientation.If es retrato, luego presentar el popover como lo hace para lo que es visible cuando el usuario hace clic botón de la barra

.

Todo lo mejor.

Otros consejos

UISplitViewController envía mensajes a su delegado (UISplitViewControllerDelegate). Puede implementar estos métodos de delegado para mostrar el popover. Usted puede hacer algo como esto en su código de "controlador de detalle":

#pragma mark -
#pragma mark UISplitViewControllerDelegate implementation
- (void)splitViewController:(UISplitViewController*)svc 
     willHideViewController:(UIViewController *)aViewController 
          withBarButtonItem:(UIBarButtonItem*)barButtonItem 
       forPopoverController:(UIPopoverController*)pc
{  
    [barButtonItem setTitle:@"Your 'popover button' title"];
    self.navigationItem.leftBarButtonItem = barButtonItem;
}


- (void)splitViewController:(UISplitViewController*)svc 
     willShowViewController:(UIViewController *)aViewController 
  invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    self.navigationItem.leftBarButtonItem = nil;
}

La respuesta aceptada (usando shouldAutorotateToInterfaceOrientation) no funciona para mí. Es bien tiene artefactos de rotación (en el 4,2 y 5,0 iPad simuladores) o sólo muestra en el arranque y nunca más en rotaciones posteriores (el simulador de 4,3). Lo que hice en cambio, fue para crear un poco de función auxiliar:

- (void)showPopoverInPortrait {
    if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) {
        [self.masterPopoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem
                                             permittedArrowDirections:UIPopoverArrowDirectionAny 
                                                             animated:YES];
    }
}

y llamar a esto dentro de - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation y - (void)viewDidLoad a manejar también en el arranque.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top