iPhone - ориентация интерфейса поменялась? - PullRequest
1 голос
/ 20 февраля 2010

Привет, у меня есть этот кусок кода ...

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

и

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{

  if(UIInterfaceOrientationIsPortrait(interfaceOrientation)){
    // WTF, this runs when I change to Landscape
  } else {
    // this runs when I change to Portrait??? shouldn't it be the contrary?
  }
}

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

Когда я включаю устройство, самообзор вращается.

Это UIInterfaceOrientationIsPortrait, проверяющий, как работает интерфейс перед вращением, или я что-то упустил?

спасибо за любую помощь.

1 Ответ

6 голосов
/ 20 февраля 2010

Обратите внимание, что метод называется didRotate From InterfaceOrientation, поэтому, естественно, параметр interfaceOrientation содержит старую ориентацию, а не новую.

...