私は非常に奇妙な振る舞いをしています:
- iOS 5 では
UIImagePickerController
、次のように提示します。
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.modalPresentationStyle = UIModalPresentationFullScreen;
imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:imagePicker animated:YES];
iOS 6 では、これによりクラッシュが発生します。にカテゴリを作成してクラッシュを解決しましたUIImagePickerController
:
@implementation UIImagePickerController (NonRotating)
- (BOOL)shouldAutorotate
{
return NO;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationMaskPortrait;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
@end
問題は、UIImagePickerController
が回転せず、上向きに表示されることです。さらに、「キャンセル」ボタンを押してピッカーを閉じると、アプリが再びクラッシュします。
UIImagePickerController
内部で aを使用するとUIPopoverController
、すべて正常に動作します (ポップオーバーが回転しないという事実に属します) が、アプリでポップオーバー ALL ビュー コントローラーを閉じると、回転イベントへの応答が停止し、これによりすべてのアプリがブロックされますオリエンテーション。正しい動作を復元するには、アプリをバックグラウンドから終了して再度開く必要があります。
これは、ポップオーバーを表示するために使用しているコードです
_cameraPopoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[_cameraPopoverController presentPopoverFromRect:_takeFromCamera.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
この問題は私を夢中にさせます!