gpt4 book ai didi

ios - UIActivityViewController 将 sourceView 设置为 UIBarButtonItem

转载 作者:技术小花猫 更新时间:2023-10-29 10:20:11 27 4
gpt4 key购买 nike

对于 iPhone/iPad 应用程序,我具有在有人单击 UIBarButtonItem 时共享的功能。

UIActivityViewController * activityVC = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil];

[self presentViewController:activityVC animated:YES completion:nil];

但是对于 iPad,此代码会出错,因为我需要为 activityVC 设置 sourceView。

所以我需要添加这段代码,但是将它设置到UIBarButtonItem的位置。

activityVC.popoverPresentationController.sourceView = SomeUIBarButtonItem;

但这不起作用,因为 UIBarButtonItem 不是从 UIView 继承的(这对我来说真的很奇怪,我不明白这个逻辑)。

有什么方法可以设置它,使共享弹出窗口指向栏按钮项目吗?

谢谢,

最佳答案

您需要做的就是使用弹出窗口的 barButtonItem 属性。

在 iPad 上支持 ActivityViewController 或 UIAlertController 的正确代码:

popover.barButtonItem = self.navigationItem.rightBarButtonItem;

另一个完全支持 iPad 的示例,使用 UIAlertController(但与 ActivityViewController 的工作方式相同):

UIPopoverPresentationController *popover = alert.popoverPresentationController;
if (popover)
{
popover.barButtonItem = self.navigationItem.rightBarButtonItem;
popover.permittedArrowDirections = UIPopoverArrowDirectionUp;
}

[self presentViewController:alert animated:YES completion:nil];

swift 4.2

if let popover = alert.popoverPresentationController {
popover.barButtonItem = self.navigationItem.rightBarButtonItem
popover.permittedArrowDirections = .up
}

self.present(alert, animated: true, completion: nil)

关于ios - UIActivityViewController 将 sourceView 设置为 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244117/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com