以编程方式将方向转变为横向的代码?

问题描述 投票:0回答:1

FirstViewController
中有一个按钮。按下后,会出现一个模态转场,转到
SecondViewController
FirstViewController
是纵向,
SecondViewController
是横向。在故事板文件中,我将 SecondVC 设置为 Landscape,但 iOS 模拟器不会自动更改其方向。
有人可以帮我找到自动将
SecondViewController
从纵向变为横向的代码吗?

SecondVC 中的

viewDidLoad
声明:

-(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;
}

任何帮助表示赞赏。

ios cocoa-touch uiinterfaceorientation
1个回答
4
投票

可悲的是,虽然您尝试拨打

UIDeviceOrientationIsLandscape(YES);
是一次勇敢的尝试,但这实际上并没有改变方向。该方法用于确认保持方向的变量是否是横向的。

例如,如果

UIInterfaceOrientationIsLandscape(toInterfaceOrientation)
保持横向,则
toInterfaceOrientation
将返回 TRUE,否则返回 FALSE。

UIViewController 类参考中的处理视图旋转概述了更改方向的正确技术。具体而言,在 iOS 6 中,您应该:

- (BOOL)shouldAutorotate { return YES; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; }

在iOS 5中,必要的方法是:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) return YES; else return NO; }
    
© www.soinside.com 2019 - 2024. All rights reserved.