首页 > 代码库 > ios6.0,程序为横屏,出现闪退

ios6.0,程序为横屏,出现闪退

本文转载至 http://blog.csdn.net/huanghuanghbc/article/details/10150355
 

ios6.0,程序为横屏,出现闪退 
*** Terminating app due to uncaught exception ‘UIApplicationInvalidInterfaceOrientation‘, reason: ‘Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES‘ 
*** First throw call stack: 
(0x1c8d012 0x10cae7e 0x1c8cdeb 0xff702 0xff72e 0xffd6d 0xf6caf 0x108790 0x5f25e 0x5f05d 0x5f05d 0x5a5e6 0x60af4 0x58eed 0x4dfc4b 0x29f0 0x10de705 0x15920 0x158b8 0xd6671 0xd6bcf 0xd5d38 0x4533f 0x45552 0x233aa 0x14cf8 0x1be8df9 0x1be8ad0 0x1c02bf5 0x1c02962 0x1c33bb6 0x1c32f44 0x1c32e1b 0x1be77e3 0x1be7668 0x1265c 0x21bd 0x20e5) 
libc++abi.dylib: terminate called throwing an exception

 
自己找到答案了; 
是因为UIImagePickerController是竖屏的,而ipad是横屏的,在ios6.0的横竖屏的问题比较敏感,所以在会挂的。 
解决办法: 
在supported Interface Orientations选中landscapeLeft和LandscapeRight(不选中的话在iOS5.0下第一次运行会竖屏) 
在appdelegate添加 
#if __IPAD_OS_VERSION_MAX_ALLOWED >= __IPAD_6_0 

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 


return UIInterfaceOrientationMaskAll; 



#endif 
在该viewController和上一层的viewController中添加 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 


return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight ); 



-(NSUInteger)supportedInterfaceOrientations{ 
return UIInterfaceOrientationMaskLandscape; 


- (BOOL)shouldAutorotate 

return YES;