Pergunta

Eu tenho uma questão de orientação muito estranha. Eu tenho uma sequência de controladores de visão em um controlador de navegação. Um deles pode tomar qualquer orientação. Quando estou deixando a orientação, tenho que usar a Setorientation. O engraçado é que a rotação ocorre quando a transição ocorre para a próxima página. Normalmente, isso não é um problema, exceto para um único caso - do UideviceRientationPorTraitupSideDown para as causas normais, todos os meus itens montados superior para migrar cerca de um oitavo de uma página.

Há três maneiras de eu poder consertar:

  1. De alguma forma, separe a setorientação da minha chamada de pushviewController (para que a nova visualização não precise virar)
  2. Defina meus itens para serem ancorados na parte superior do dispositivo de uma maneira melhor (eu verifiquei e eles parecem ser)
  3. Redefina a dimensão y nos elementos no método ViewDidload, mas isso parece errado.

Aqui está o meu empurrão a nova vista para o código da pilha:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];

Alguém mais acha estranho que o simulador não permita que você teste a de cabeça para baixo até o comportamento do retrato?

Foi útil?

Solução 3

A maneira de evitar o bug de rotação ao girar de de cabeça para baixo para retrato não é fazê -lo. Em vez disso, gire duas vezes parando no meio do caminho (digamos UIDeviceOrientationLandscapeRight). A questão do tempo não é usar o sono, mas implementar didRotateFromInterfaceOrientation e disparar a segunda rotação (ou empurrar para a próxima vista) nesse ponto.

Outras dicas

Só para observar: a Apple começou a usar um analisador estático (talvez até dinâmico) e Bloqueia aplicativos que usam métodos privados (por exemplo: setOrientation:) de entrar na loja. Aconteceu com um amigo meu na semana passada.

Você já tentou construir contra o iPhone OS 3.0 e confiar apenas em shouldRotateToInterfaceOrientation:? O comportamento parece ser corrigido (em comparação com a implementação em 2.x) e - pelo menos para mim - faz o trabalho.

Normalmente, você não suporta a orientação de cabeça para baixo. Esse parece ser o comportamento padrão do aplicativo da Apple e faz sentido. O caso de cabeça para baixo não é realmente útil e pode causar confusão ao usuário.

Tivemos um problema semelhante em que subviews migrariam para cima e para baixo na visão principal ao folhear o estojo de cabeça para baixo. Paramos de suportar de cabeça para baixo e isso basicamente resolveu o problema.

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