【发布时间】:2016-04-04 13:29:07
【问题描述】:
我有一个 UIActivityViewController,我在 iPad 上的弹出窗口中展示(使用 UIPopoverPresentationController)。
当弹出框最初显示时,它的大小是正确的。当我点击“更多”时,会显示“活动”视图。当我点击“完成”时,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;
是否有任何解决方法。调整弹出框的大小还是只保留一个大小?
我已尝试继承 UIActivityViewController 并更改首选内容大小,但 UIActivityController 的内容不会调整大小以适应弹出框的大小
【问题讨论】:
-
如果我没记错的话,你需要从最顶层的视图控制器中显示这个弹出框。我还认为您需要从委托的完成处理程序中将其关闭。你是如何关闭弹出框的?
-
您不应该创建自己的导航控制器或弹出框来显示
UIActivityViewController。 -
目前@fbara 在点击它外部或选择列表中的项目时将其关闭,但在这里关闭它不是问题。
-
如何在 iPad @rmaddy 的弹出窗口中显示
UIActivityViewController? -
直接从
UIActivityViewController获取popoverPresentationController并设置它的barButtonItem。
标签: ios objective-c ipad