我在viewDidAppear
和viewWillAppear
中检查设备的方向,并通过调用willAnimateRotationToInterfaceOrientation
方法强制定位。
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
_levelComplete = YES;
[self willAnimateRotationToInterfaceOrientation:[[UIDevice currentDevice] orientation] duration:0.01];
}
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (toInterfaceOrientation == (UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight) )
{
}
else if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
{
}
}
我遇到的问题是,toInterfaceOrientation
和viewDidAppear
方法viewWillAppear
仍为0,因此程序崩溃。
可能是什么问题?
请帮助!
答案 0 :(得分:2)
试试这个
- (void) viewDidLoad
{
_levelComplete = YES;
[self adjustViewsForOrientation:self.interfaceOrientation];
}
-(void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation
{
if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown)
{
}
else
{
}
}
答案 1 :(得分:0)
正如你所提到的:我遇到的问题是viewDidAppear和viewWillAppear方法的toInterfaceOrientation仍为0,因此程序崩溃。
方向0指未知方向。在viewWillAppear
和viewDiddAppear
以及方向代表上设置断点。请注意,方向的delagates会首先调用视图委托。
您可以使用代理
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeLeft;
}
使用此委托,应用程序将以横向模式或任何所需的方向模式显示。
试试吧。