在我的应用程序中,我有另一个屏幕的第二个视图控制器。此视图控制器有一个关闭按钮,用于模拟视图控制器。按下此关闭按钮后,应用程序崩溃。它崩溃时出现以下错误:
*** Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'preferredInterfaceOrientationForPresentation must return a supported interface orientation!'
这是我在第二个视图控制器的.m
中用来关闭视图控制器的方法- (IBAction)done {
[self dismissViewControllerAnimated:YES completion:nil];
//[self dismissModalViewControllerAnimated:YES];
}
崩溃发生在[self dismissViewControllerAnimated:YES completion:nil];
在我的主视图控制器中使用此方法显示第二个视图控制器:
-(IBAction)switchViews {
[self presentViewController:secondView animated:YES completion:nil];
//[self presentModalViewController:secondView animated:YES];
}
与主视图控制器中的旋转相关的代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return YES;
}
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationMaskPortrait;
}
我无法解决此问题。我查了那个错误并尝试了各种解决方案,但没有任何效果。为什么会发生这种崩溃?我做错了什么?
如果您需要更多信息,请告诉我们。
答案 0 :(得分:1)
你回错了。它期望的值是UIInterfaceOrientationPortrait
,但您返回UIInterfaceOrientationMaskPortrait
。注意Mask部分。