iPadでUIActivityViewControllerを呼ぶとクラッシュする現象の対応
iPadでUIActivityViewControllerがクラッシュする
iOSアプリでUIActivityViewController(OS標準の共有機能)を呼ぶ際に、iPadのみでクラッシュする現象に遭遇。
エラーメッセージは以下のとおり。
Terminating app due to uncaught exception 'NSGenericException', reason: 'Your application has presented a UIActivityViewController (). In its current trait environment, the modalPresentationStyle of a UIActivityViewController with this style is UIModalPresentationPopover. You must provide location information for this popover through the view controller's popoverPresentationController. You must provide either a sourceView and sourceRect or a barButtonItem. If this information is not known when you present the view controller, you may provide it in the UIPopoverPresentationControllerDelegate method -prepareForPopoverPresentation.'
対処法
iPadの場合はsourceView
とsourceRect
を指定する必要がある。
UIActivityViewController *activityViewController = [[[UIActivityViewController alloc] initWithActivityItems:actItems applicationActivities:nil] autorelease];
activityViewController.popoverPresentationController.sourceView = self.view;
activityViewController.popoverPresentationController.sourceRect = CGRectMake(self.view.bounds.size.width / 2.0, self.view.bounds.size.height / 2.0, 1.0, 1.0);
上記コードでクラッシュが回避され、ど真ん中にUIActivityViewControllerが表示される。
Author And Source
この問題について(iPadでUIActivityViewControllerを呼ぶとクラッシュする現象の対応), 我々は、より多くの情報をここで見つけました https://qiita.com/unsoluble_sugar/items/d41e6b2b6e3ca3b83be7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .