【问题标题】:Get UIActivityViewController (share) to show on iPad in the way it shows on iPhone?让 UIActivityViewController (share) 以它在 iPhone 上显示的方式在 iPad 上显示?
【发布时间】:2020-08-07 18:59:32
【问题描述】:

我有一个分享按钮。当点击分享按钮时,视图控制器运行如下代码:

类视图控制器:UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}

@IBOutlet weak var popOverView: UIView!
@IBOutlet weak var shareButton: UIButton!
@IBAction func share()
{
    let text = "Sharing."
    if let url = URL(string: "https://www.apple.com")
    {
        let items = [text,url] as [Any]
        let activityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
        if let popoverViewController = activityViewController.popoverPresentationController
        {
            popoverViewController.sourceView = popOverView
            // popoverViewController.sourceRect = popOverView.frame
        }
        present(activityViewController, animated: true, completion: nil)
        print(activityViewController.popoverPresentationController?.sourceView)
    }
}

}

这可行,但会产生这个:

当我想要这样的东西时,因为要共享的内容不会在这个视图控制器上:

如何获得我想要的屏幕?

【问题讨论】:

    标签: ios swift uiactivityviewcontroller


    【解决方案1】:

    我认为你需要这样做:

    sharingViewController.modalPresentationStyle = .popover
    

    在设置 sharingViewController.popoverPresentationController?.sourceView 属性之前。在您执行此操作之前,sharingViewController.popoverPresentationController 为零。

    【讨论】:

    • 尝试添加self.descriptionVC.popoverPresentationController!.permittedArrowDirections = .anyself.descriptionVC.popoverPresentationController!.sourceRect = myRect,其中myRect是弹出框应该从中“弹出”的UI元素的CGRect(在self.view的坐标系中)。
    • 如果可行,请在另一条评论中告诉我,我将编辑我的原始答案。
    • 抱歉,描述VC/myRect是什么?
    • @guywithmazda ,iPhone 风格的弹出窗口在 iPad 上是不可能的。
    • @MontanaBurr,我从我的一个应用程序中复制并粘贴了一些代码,但我忘记更改视图控制器名称以匹配您使用的名称。无论如何,既然您已经更改了问题标题并修改了问题本身,我可以看到这不会给您想要的外观。
    【解决方案2】:

    很遗憾,这在 iPad 上不可能

    很抱歉带来坏消息!


    如果您真的、真的想要那种外观,您必须制作一个完全自定义的视图控制器并放置在那里(即不连接到 UIActivityViewController),当然这将是不切实际的工作量。

    【讨论】:

      猜你喜欢
      • 2020-11-09
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多