当前位置:  开发笔记 > IOS > 正文

UIActivityViewController将sourceView设置为UIBarButtonItem

如何解决《UIActivityViewController将sourceView设置为UIBarButtonItem》经验,为你挑选了1个好方法。

对于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继承(这对我来说真的很奇怪,我没有得到这个逻辑).

有没有办法设置它,以便共享popover出现指向栏按钮项?

谢谢,



1> o.shnn..:

您需要做的就是使用popover的barButtonItem属性.

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

popover.barButtonItem = self.navigationItem.rightBarButtonItem;

使用UIAlertController完全支持iPad的另一个例子(但与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)

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有