當我嘗試關閉我的UIImagePickerController時,它崩潰了應用程序。錯誤是:「終止應用程序由於未捕獲的異常'UIApplicationInvalidInterfaceOrientation',原因:'preferredInterfaceOrientationForPresentation必須返回支持的接口方向!'」關閉相機視圖崩潰應用程序
我有我的視圖控制器中設置的首選接口方向。
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
- (BOOL) shouldAutorotate {
return YES;
}
這裏是我打電話,調出攝像頭的方法,這工作正常添加的攝像頭,但就像我說的,崩潰當我嘗試取出相機。
-(IBAction)addCamera:(id)sender
{
self.cameraController = [[UIImagePickerController alloc] init];
self.cameraController.sourceType = UIImagePickerControllerSourceTypeCamera;
self.cameraController.cameraViewTransform = CGAffineTransformScale(self.cameraController.cameraViewTransform,
1.13f,
1.13f);
self.cameraController.showsCameraControls = NO;
self.cameraController.navigationBarHidden = YES;
self.wantsFullScreenLayout = YES;
ar_overlayView = [[UIView alloc] initWithFrame:CGRectZero];
self.view = ar_overlayView;
[self.cameraController setCameraOverlayView:ar_overlayView];
[self presentViewController:cameraController animated:NO completion:nil];
[ar_overlayView setFrame:self.cameraController.view.bounds];
}
-(IBAction)back:(id)sender
{
[ar_overlayView removeFromSuperview];
[cameraController dismissViewControllerAnimated:NO completion:nil];
}
如果我嘗試使用視圖控制器以關閉照相機,如在另外崩潰 - (IBAction爲)背面:(ID)發送方 { [ar_overlayView removeFromSuperview]; [self dismissViewControllerAnimated:NO completion:nil]; } –
還有一個問題:在哪裏以及如何聲明'ar_overlayView'? – gregheo
它是在我的@implementation後面聲明的,不知道那是什麼,但看起來像這樣。 (AT)接口ARViewController() (AT)端 (AT)實施ARViewController 的UIView * ar_overlayView; UIView * button_overlayView; (at)合成..... –