2013-09-25 72 views
4

我有一個橫向唯一的應用程序,每當我訪問照片庫時,應用程序將崩潰(因爲UIImagePickerViewController正試圖在縱向模式下加載)。應用程序工作正常的iOS 5和6iOS 7僅橫向應用程序無法訪問照片庫

我收到以下錯誤,

終止應用程序由於未捕獲的異常「UIApplicationInvalidInterfaceOrientation」,理由是:「支持的方向與應用程序中沒有共同的方向,並shouldAutorotate將返回YES

*** First throw call stack: 
(0x2ff7ae8b 0x3a2746c7 0x2ff7adcd 0x3277337d 0x3277a4c5 0x3277a47b 0x327795b3 0x326fff3d 0x326ffd19 0x326ff609 0x326ff467 0x3270c153 0x3270bbd3 0x327b7f67 0x327b7d83 0x327afdf3 0x327af279 0x327aefe9 0x327aef7d 0x32700533 0x32387f43 0x32383767 0x323835f9 0x3238300d 0x32382e1f 0x3237cb4d 0x2ff45f71 0x2ff438ff 0x2ff43c4b 0x2feae541 0x2feae323 0x34be52eb 0x327651e5 0x8c439 0x8c3c0) 

`libc++abi.dylib:` terminating with uncaught exception of type `NSException` 

當我啓動肖像模式,一切都照常工作,但我不希望啓用肖像模式。這是什麼解決方法?

+0

可能重複的imagePicker [僅iOS7 iPad的景觀的應用程序,使用的UIImagePickerController](http://stackoverflow.com/questions/20468335/ios7-ipad- landscape-only-app-using-uiimagepickercontroller) –

回答

8

是的,我有一個應用程序類似的問題

您可以添加人像模式,支持應用程序,但限制爲僅支持風景所有其它視圖, 模式,則圖像選擇器將工作

UIImagePickerViewController只有作品在人像模式

限制其他意見只支持橫向模式,覆蓋 - (NSUInteger)supportedInterfaceOrientations在您的視圖控制器

- (NSUInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskLandscape; 
} 
+0

你是如何將所有其他視圖限制爲僅支持景觀的?我嘗試了所有可能的方式,但在plist中添加肖像模式支持時,它仍然旋轉爲肖像。 – sleepwalkerfx

+0

向你的視圖控制器添加代碼 - } – lanbo

+3

在我的情況下,這不起作用,因爲我的根視圖控制器是一個導航控制器。所以我不得不用這些方法來劃分導航控制器。然後它工作!謝謝! :) – sleepwalkerfx

0

The CGAffineTransform UIImagePickerController的屬性可用於獲取所需的方向的相機。 imagePicker.cameraViewTransform=CGAffineTransformRotate(yourimagePicker.cameraViewTransform, M_PI/2);

或者,您也可以使用CGAffineTransformScale將自定義大小應用於您的相機。

1

在appdelegate.m文件中添加以下代碼片段。這將解決上述問題。

-(NSUInteger)application:(UIApplication *)application 
supportedInterfaceOrientationsForWindow:(UIWindow *)window 
{ 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    { 
     return UIInterfaceOrientationMaskAll; 
    } 
    else 
    { 
     return UIInterfaceOrientationMaskAllButUpsideDown; 
    } 
} 
0

可以簡單地呈現使用的

ImagePickerController *imagePickerController=[[ImagePickerController alloc]init]; 
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext; 
相關問題