Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Postado

Estou fazendo meu app versao para iPad, na versao pro iPhone o app trabalha somente na visao "Portrait" mas na versao para iPad ele será na visao LandsCape, vejam o que fiz até agora:


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
else{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);

}
}
[/CODE]

ele detecta se é iPad e caso for, ficará em Landscape em qualquer posiçao que o iPad estiver, pro iPhone faz o contrario.

não tive sucesso, nao funcionou.

alguém ja fez algo parecido ? Basicamente o que quero é simples, iPhone == Portrait, iPad == LandsCape;

  • Respostas 12
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

Posso estar errado mas acho que dentro do return é apenas um "=" ao inves de "=="

Pois é atribuição e não condição.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

// Return YES for supported orientations

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

else{

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

}

Caso tenha falado besteira desculpe, ainda não programo em Objective C

Postado (editado)

opa, obrigado pela dica, e voce tem razao, quando estava com esse codigo estava recebedo um erro no debug, pois nao retornava nenhum valor TRUE e nao funcionava nada, porem para corrigir este problema tentei implementar outro codigo:


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown) &&
(interfaceOrientation != UIInterfaceOrientationPortrait);
} else {
return (interfaceOrientation != UIInterfaceOrientationLandscapeLeft) &&
(interfaceOrientation != UIInterfaceOrientationLandscapeRight);
}
[/CODE]

só que o resultado é muito estranho, quando rodo o app no iPad, a tela carrega em modo UIInterfaceOrientationLandscapeLeft, mas somente enquanto está na tela de splash, depois volta ao normal, e mesmo que eu gire o iPad nao acontece a rotaçao da tela,

criei um projeto novo só para testes e funciona perfeitamente este codigo, porém se eu adcionar um MainWindow ferra tudo, o app nao faz mais a rotaçao.

o formato da tela carrega no modo certo, "Landscape", mas minha taBar fica na visão "Portrait" e nada gira.

:/

Editado por sanchessd
Postado

Estou fazendo meu app versao para iPad, na versao pro iPhone o app trabalha somente na visao "Portrait" mas na versao para iPad ele será na visao LandsCape, vejam o que fiz até agora:


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
else{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);

}
}
[/CODE]

ele detecta se é iPad e caso for, ficará em Landscape em qualquer posiçao que o iPad estiver, pro iPhone faz o contrario.

não tive sucesso, nao funcionou.

alguém ja fez algo parecido ? Basicamente o que quero é simples, iPhone == Portrait, iPad == LandsCape;

O seu único problema nesse trecho do código é que você está retornando o mesmo valor se for um iPad ou iPhone. Troque dentro do else o UIInterfaceOrientationLandscapeLeft por UIInterfaceOrientationPortrait ou UIInterfaceOrientationPortraitUpsideDown. Caso queira dar suporte aos dois essa macro resolve o seu problema: UIInterfaceOrientationIsPortrait(interfaceOrientation).

Abaixo segue um trecho de código como exemplo:

[CODE]
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
} else {
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
}
[/CODE]

Posso estar errado mas acho que dentro do return é apenas um "=" ao inves de "=="

Pois é atribuição e não condição.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

// Return YES for supported orientations

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

else{

return (interfaceOrientation = UIInterfaceOrientationLandscapeLeft);

}

}

Caso tenha falado besteira desculpe, ainda não programo em Objective C

Nesse caso é uma condição mesmo e não uma atribuição.

Postado

depois de uma semana estou respondendo, demorei pois estava viajando...

bem, é exatamente isso que preciso no meu app, porém recebo o mesmo problema do inicio, tenho um MainWindow.xib no meu projeto, se adcionar um MainWindow no projeto que me mandou verá que ele nao vai mais responder a rotação.

fiz uns testes coloquei


return YES;
[/CODE]

que no caso responderia a todas Orientações mas ele nao da sinal.

Postado

depois de muitos testes aqui aconsegui resolver o problema.

no meu appDelegate.h

coloquei:


@interface UITabBarController (MyApp)
@end
[/CODE]

e no meu appDelegate.m

[CODE]
@implementation UITabBarController (MyApp)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
} else {
return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}
}
@end
[/CODE]

minha tabBar roda certinho agora

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.



  • Estatísticas do Fórum

    • Total de Tópicos
      57.8k
    • Total de Posts
      468k
×
×
  • Criar Novo...