Определите UIInterfaceOrientation на iPad

Я не должен указывать ориентацию в этом случае, я просто должен обнаружить ее, но я испытываю затруднения. У меня есть условный код, который должен только работать в портрете, и если устройство находится в среде, я должен сделать что-то еще. Так как deviceOrientation является не обязательно тем же как interfaceOrientation, я не могу придумать способ протестировать на режим портрета.

Большинство учебных руководств, которые я нахожу на Google, является способами вызвать среду или сделать своего рода вращение. Единственная вещь, которую я хочу сделать, просто определяют, какова ориентация. Вот мой код, который не работает:

-(void)viewDidLoad {
    [super viewDidLoad];
    //currentOrientation is declared as UIInterfaceOrientation currentOrientation
    currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
NSLog(@"%@",currentOrientation);  // == NULL
}

Я должен определить значение interfaceOrientation и программы условно.Спасибо за помощь!

35
задан Justin 10 April 2010 в 17:41
поделиться

2 ответа

Известно ли вам о свойстве interfaceOrientation класса UIViewController ?

- (void) viewDidLoad {
    [super viewDidLoad];
    BOOL isPortrait = UIDeviceOrientationIsPortrait(self.interfaceOrientation);
    // now do whatever you need
}

Или вам нужна ориентация [[UIDevice currentDevice]] ?

77
ответ дан 27 November 2019 в 06:24
поделиться

Особенно при запуске я обнаружил, что следующее всегда верно для пользовательского интерфейса, независимо от того, какая ориентация указана в UIDevice.

[UIApplication sharedApplication].statusBarOrientation
41
ответ дан 27 November 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: