解决[PUUIAlbumListViewController shouldAutorotate] is returning YES

参考:http://stackoverflow.com/questions/28134138/how-to-present-uiimagepickercontroller-or-open-the-camera-in-a-landscape-only-ap

使用UIImagePickerController并在应用Info.plist只开启横屏的情况下会抛出异常:

*** Terminating app due to uncaught exception'UIApplicationInvalidInterfaceOrientation', reason: 'Supportedorientations has no common orientation with the application, and[PUUIAlbumListViewController shouldAutorotate] is returningYES'

解决方案:
1、在AppDelegate中加入以下代码:

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

2、在显示 UIImagePickerController的位置不要使用推出的方式,改为addSubView的方式:

[self.view addSubview:imPickerController.view];

ps:如果一定要使用推出的方式,会导致推出 UIImagePickerController后再返回到原来的ViewController会旋转(竖屏、横屏均可),那么可以在该ViewController中添加下面代码解决:

- (BOOL)shouldAutorotate
{
    return NO;
}

你可能感兴趣的:(iOS开发,iOS)