Ios UIActivityViewController在UIPopoverPresentationController中显示时未调整大小
我有一个UIActivityViewController,我正在iPad上的popover中演示它(使用UIPopoverPresentationController) 最初显示popover时,其大小是正确的。当我点击“更多”时,将显示“活动”视图。当我点击“完成”时,UIActivityViewController不会调整到其初始大小,不幸的是,UIActivityViewController中的内容不会占据整个视图 以下是采取的步骤: 显示UIActivityViewController: 点击“更多”按钮: 弹出框展开以防止文本被截断 点击导航栏上的“完成”按钮: popover不会再次调整其初始大小 创建和显示UIActivityViewController中的代码:Ios UIActivityViewController在UIPopoverPresentationController中显示时未调整大小,ios,objective-c,ipad,Ios,Objective C,Ipad,我有一个UIActivityViewController,我正在iPad上的popover中演示它(使用UIPopoverPresentationController) 最初显示popover时,其大小是正确的。当我点击“更多”时,将显示“活动”视图。当我点击“完成”时,UIActivityViewController不会调整到其初始大小,不幸的是,UIActivityViewController中的内容不会占据整个视图 以下是采取的步骤: 显示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;
有什么解决办法吗。调整popover的大小还是保持一个大小
我已尝试将UIActivityViewController子类化并更改preferredContentSize,但UIActivityController的内容不会调整大小以适应popover的大小不要将活动控制器放入导航控制器中。直接使用活动控制器中的popover 您可以按如下方式更新
showActivityViewController
:
UIPopoverPresentationController *popoverPresentationController = [activityViewController popoverPresentationController];
popoverPresentationController.permittedArrowDirections = arrowDirection;
popoverPresentationController.barButtonItem = buttonItem;
[self presentViewController:activityViewController animated:YES completion:nil];
如果我没记错的话,您需要从最上面的视图控制器显示此弹出框。我还认为您需要从委托的完成处理程序中删除它。您如何解除popover?您不应该创建自己的导航控制器或popover来显示
UIActivityViewController
。当前@fbara在点击其外部时,或在选择列表中的项目时,将解除popover,但忽略这一点并不是问题所在。如何在iPad@rmaddy上的Popor中显示UIActivityViewController
?直接从UIActivityViewController
获取PopoOverpresentationController
,并设置其barButtonItem
。