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

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • 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.6k
    • Total de Posts
      468.2k
×
×
  • Criar Novo...