Pergunta

Gostaria de tornar visível o Popover View sempre que o usuário mudar da vista da paisagem para a visão de retrato no UISPLITVIEL do iPad. Embora o usuário possa torná -lo visível clicando no botão de barra, mas eu quero que isso seja automatizado para o modo retrato.

Foi útil?

Solução

Dentro do método " -(bool) deve ser o método da orientação do dispositivo.

Tudo de bom.

Outras dicas

UISPLITVIEWController envia mensagens para seu delegado (UISPLITVIEWControllerDelegate). Você pode implementar esses métodos delegados para mostrar o popover. Você pode fazer algo assim no seu código "Detalhe Controller":

#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;
}

A resposta aceita (usando shouldAutorotateToInterfaceOrientation) não funciona para mim. Ele possui artefatos de rotação (nos simuladores de iPad 4.2 e 5.0) ou apenas mostram na inicialização e nunca mais em rotações subsequentes (o simulador 4.3). O que eu fiz foi criar uma pequena função ajudante:

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

e chame isso de dentro - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation e - (void)viewDidLoad Para também lidar com a inicialização.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top