Получение неправильной ориентации

У меня возникла проблема в моем приложении, которая сводит меня с ума. В моем приложении я поворачиваю симулятор в ландшафтный режим, но в моей функции ниже я получаю портретную ориентацию.

В чем проблема? Пожалуйста, помогите мне.

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
  if ( interfaceOrientation == UIInterfaceOrientationPortrait || 
  interfaceOrientation ==    UIInterfaceOrientationPortraitUpsideDown )
  {
    NSLog(@" portrait orientation");
  }
  else
  {
    NSLog(@"Landscape"); 
  }
 return YES;
}

person user198725878    schedule 30.12.2010    source источник
comment
Пожалуйста, обновите версию sdk и xcode, которую вы используете. Когда я запускаю тот же код, я получаю ожидаемый результат. Вероятно, у вашего xcode есть некоторые проблемы.   -  person Madhup Singh Yadav    schedule 30.12.2010


Ответы (4)


Сначала установите значение ориентации - это метод

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Overriden to allow any orientation.
NSLog(@"shouldAutorotateToInterfaceOrientation called...");
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown) 
        defaultOrientation = 0;
    else if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
        defaultOrientation = 1;
    [self setTheOrientation];
    return YES;

}

Теперь установите значения координат, которые вам нужны, в соответствии с логическими значениями в методе setTheOrientation.

person Aditya    schedule 30.12.2010

Метод возвращает BOOL, вы должны вернуть YES или NO.

person vodkhang    schedule 30.12.2010
comment
извините .. это была опечатка .. я спрашиваю, мой симулятор находится в ландшафтном режиме, но я получаю портретную ориентацию печатается .. любая помощь - person user198725878; 30.12.2010
comment
действительно интересно, я не понимаю, почему, вы пробовали отладить и посмотреть, что выводится в interfaceOrientation? - person vodkhang; 30.12.2010
comment
Вы можете попробовать с NSLog(@%d, interfaceOrientation); - person vodkhang; 30.12.2010
comment
Привет... на самом деле я поворачиваю симулятор в альбомную ориентацию, но когда я вижу оператор отладки, он показывает, что портретный режим... это моя проблема... что-нибудь помогает? - person user198725878; 30.12.2010
comment
вы тестировали на устройстве? вы nslog the interfaceOrientation - person vodkhang; 30.12.2010

Почему вы не вернули значение BOOL? ДА или НЕТ, чтобы сообщить ОС, что вы собираетесь обрабатывать соответствующие события ориентации.

person Di Wu    schedule 30.12.2010

Если вам нужен портретный режим, добавьте return TRUE в if clouse, а если вам нужен альбомный режим, добавьте return TRUE в else clouse, а если вы хотите оба режима, просто введите return TRUE в закрыть автоповорот

person dks1725    schedule 30.12.2010