Я не должен указывать ориентацию в этом случае, я просто должен обнаружить ее, но я испытываю затруднения. У меня есть условный код, который должен только работать в портрете, и если устройство находится в среде, я должен сделать что-то еще. Так как deviceOrientation является не обязательно тем же как interfaceOrientation, я не могу придумать способ протестировать на режим портрета.
Большинство учебных руководств, которые я нахожу на Google, является способами вызвать среду или сделать своего рода вращение. Единственная вещь, которую я хочу сделать, просто определяют, какова ориентация. Вот мой код, который не работает:
-(void)viewDidLoad {
[super viewDidLoad];
//currentOrientation is declared as UIInterfaceOrientation currentOrientation
currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
NSLog(@"%@",currentOrientation); // == NULL
}
Я должен определить значение interfaceOrientation и программы условно.Спасибо за помощь!
Известно ли вам о свойстве interfaceOrientation
класса UIViewController
?
- (void) viewDidLoad {
[super viewDidLoad];
BOOL isPortrait = UIDeviceOrientationIsPortrait(self.interfaceOrientation);
// now do whatever you need
}
Или вам нужна ориентация [[UIDevice currentDevice]]
?
Особенно при запуске я обнаружил, что следующее всегда верно для пользовательского интерфейса, независимо от того, какая ориентация указана в UIDevice.
[UIApplication sharedApplication].statusBarOrientation