私は(UIPopoverPresentationControllerを使用して)iPad上のポップオーバーでプレゼンテーションしているUIActivityViewControllerを持っています。UIAopivityViewControllerがUIPopoverPresentationControllerで提示されたときにサイズ変更されない
最初にポップオーバーが表示されている場合、そのサイズは正しいです。 「More」をタップすると、「Activities」ビューが表示されます。 'Done'をタップすると、UIActivityViewControllerは初期サイズにサイズ変更されず、UIActivityViewController内のコンテンツは残念ながら全体のビューを占めません。 UIActivityViewController
ポップオーバーが切断されるからテキストを防止するために、以下のように拡張します。「詳細」ボタンを
タップここ
が取ら歩ですオフ。ポップオーバーは、その初期サイズが何であったかを再度サイズは変更されません:navigationBarの「完了」ボタンを
をタップ。 UIActivityViewController作成および表示で
コード:
- (void)actionButtonTapped:(id)sender {
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self.pdfSummary] applicationActivities:nil];
BOOL canSendMail = [MFMailComposeViewController canSendMail];
NSMutableArray *excluded = [@[UIActivityTypeAddToReadingList,
UIActivityTypeAssignToContact,
UIActivityTypeCopyToPasteboard,
UIActivityTypeMessage,
UIActivityTypePostToFacebook,
UIActivityTypePostToFlickr,
UIActivityTypePostToTencentWeibo,
UIActivityTypePostToTwitter,
UIActivityTypePostToVimeo,
UIActivityTypePostToWeibo,
UIActivityTypeSaveToCameraRoll] mutableCopy];
if (!canSendMail) {
[excluded addObject:UIActivityTypeMail];
}
activityViewController.excludedActivityTypes = excluded;
[self showActivityViewController:activityViewController fromBarButtonItem:sender];
}
そしてshowActivityViewController方法は、次のようになります。
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:activityViewController];
navController.modalPresentationStyle = UIModalPresentationPopover;
navController.navigationBarHidden = YES;
UIPopoverPresentationController *popoverPresentationController = [navController popoverPresentationController];
popoverPresentationController.permittedArrowDirections = arrowDirection;
popoverPresentationController.barButtonItem = buttonItem;
[self presentViewController:navController animated:YES completion:nil];
return popoverPresentationController;
は、このために任意の回避策があります。ポップオーバーのサイズを変更するか、ただ1つのサイズにしますか?
私はUIActivityViewControllerをサブクラス化しpreferredContentSizeを変更しようとしたが、UIActivityControllerのコンテンツは、ナビゲーションコントローラに活動コントローラを入れないでくださいポップオーバーのサイズ
を、あなたは最上位のビューコントローラからこのポップオーバーを表示する必要があります。私はまた、デリゲートの完了ハンドラからそれを却下する必要があると思います。 どのようにポップオーバーを解除しますか? – fsb
あなたは 'UIActivityViewController'を表示するために独自のnavコントローラまたはpopoverを作成すべきではありません。 – rmaddy
現在のところ、それを外したり、リスト内のアイテムが選択されているときは、それは解消されていますが、それを却下することは問題ではありません。 – user3253063