Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIActivityViewController在UIPopoverPresentationController中显示时未调整大小_Ios_Objective C_Ipad - Fatal编程技术网

Ios UIActivityViewController在UIPopoverPresentationController中显示时未调整大小

Ios UIActivityViewController在UIPopoverPresentationController中显示时未调整大小,ios,objective-c,ipad,Ios,Objective C,Ipad,我有一个UIActivityViewController,我正在iPad上的popover中演示它(使用UIPopoverPresentationController) 最初显示popover时,其大小是正确的。当我点击“更多”时,将显示“活动”视图。当我点击“完成”时,UIActivityViewController不会调整到其初始大小,不幸的是,UIActivityViewController中的内容不会占据整个视图 以下是采取的步骤: 显示UIActivityViewController:

我有一个UIActivityViewController,我正在iPad上的popover中演示它(使用UIPopoverPresentationController)

最初显示popover时,其大小是正确的。当我点击“更多”时,将显示“活动”视图。当我点击“完成”时,UIActivityViewController不会调整到其初始大小,不幸的是,UIActivityViewController中的内容不会占据整个视图

以下是采取的步骤:

显示UIActivityViewController:

点击“更多”按钮:

弹出框展开以防止文本被截断

点击导航栏上的“完成”按钮:

popover不会再次调整其初始大小

创建和显示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