參考:作者:leonwei的IOS上的UIApplicationInvalidInterfaceOrientation crash
最近在做上傳視頻、圖片矢赁、文件的功能,其中視頻播放橫屏展示复旬,在打開相冊選擇圖片上傳功能時(shí)踪宠,真機(jī)運(yùn)行的時(shí)候步势,會(huì)crash氧猬,并給出這樣的信息:
'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES.
UIImagePickerController只支持Portrait,而在上傳文件列表界面支持Landscape坏瘩,所以就粗心的在Appdelegate的- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window中也只支持了Landscape盅抚。
一個(gè)UIViewController支持的朝向在- (NSUInteger)supportedInterfaceOrientations中定義。
當(dāng)一個(gè)UIViewController啟動(dòng)時(shí)倔矾,它會(huì)根據(jù)當(dāng)前的手機(jī)朝向和它的shouldAutorotateToInterfaceOrientation接口來確定這個(gè)view的旋轉(zhuǎn)妄均,確定好后,還要看這個(gè)app的supportedInterfaceOrientationsForWindow中是否有它要做的朝向哪自,如果沒有就會(huì)crash丰包。
解決辦法就是將supportedInterfaceOrientationsForWindow中返回UIInterfaceOrientationMaskAll,以支持所有的朝向