Код, чтобы включить альбомную ориентацию программно?
В FirstViewController есть кнопка. После того, как он нажат, есть модальный сегмент, который идет к SecondViewController. FirstViewController-книжный, а SecondViewController-альбомный. В файле раскадровки я установил SecondVC в альбомную ориентацию, но симулятор iOS не будет автоматически менять ее ориентацию.
Кто-нибудь может помочь мне найти код, который автоматически переводит SecondViewController из Portait в Landscape?
viewDidLoad
утверждение в SecondVC:
-(void)viewDidAppear:(BOOL)animated {
UIDeviceOrientationIsLandscape(YES);
sleep(2);
santaImageTimer = [NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(santaChangeImage)
userInfo:NULL
repeats:YES];
[santaImageTimer fire];
image1 = YES;
}
Любая помощь оцененный.
1 ответ:
К сожалению, хотя ваша попытка позвонить
UIDeviceOrientationIsLandscape(YES);
была доблестной попыткой, это на самом деле не меняет ориентации. Этот метод используется для подтверждения того, является ли переменная, содержащая ориентацию, ландшафтной или нет.Например,
Правильный метод изменения ориентации описан в разделеобработка поворотов вида в Справочнике по классу UIViewController. в частности, в iOS 6, Вы должны:UIInterfaceOrientationIsLandscape(toInterfaceOrientation)
вернет TRUE, еслиtoInterfaceOrientation
имеет ландшафтную ориентацию, и FALSE, если нет.- (BOOL)shouldAutorotate { return YES; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; }
В iOS 5 необходимым методом является:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) return YES; else return NO; }