尝试通过点击 UIBarButtonItem 进行共享时 iPad 崩溃
Posted
技术标签:
【中文标题】尝试通过点击 UIBarButtonItem 进行共享时 iPad 崩溃【英文标题】:iPad crashes when trying to share by taping a UIBarButtonItem 【发布时间】:2016-08-28 09:37:12 【问题描述】:我正在使用 Xcode 和 Swift 开发 ios 应用程序。
我正在使用此代码通过录制 UIButton
来共享定义的字符串:
@IBAction func shareApp(sender: UIButton)
let textToShare = "Look at this:"
if let myWebsite = NSURL(string: "www.example.con")
let objectsToShare = [textToShare, myWebsite]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
if #available(iOS 8.0, *)
activityVC.popoverPresentationController?.sourceView = sender
else
// Fallback on earlier versions
self.presentViewController(activityVC, animated: true, completion: nil)
这在 iPhone 和 iPad 上运行良好。
现在,我想做同样的事情,但使用UIBarButtonItem
而不是UIButton
。当然,此代码不适用于 UIBarButtonItem。
只要我点击 BarButtonItem,更改 @IBAction func shareApp(sender: AnyObject)
和 activityVC.popoverPresentationController?.sourceView = sender as? UIView
就会导致 iPad's
崩溃。
有人知道怎么解决吗?
【问题讨论】:
【参考方案1】:对于 iPad,除了 popoverPresentationController 的源视图之外,您还需要添加 sourceRect。 请尝试以下操作:
if ( UIDevice.currentDevice().userInterfaceIdiom == .Pad)
if let fromView = sender as? UIView
youActivityVC.popoverPresentationController.sourceView = fromView
youActivityVC.popoverPresentationController.sourceRect = fromView.frame
【讨论】:
我会检查并返回。 嗨@luckystars,很抱歉我的回复晚了。您的解决方案没有帮助。我更新了我的问题。请看一下。你能帮帮我吗?以上是关于尝试通过点击 UIBarButtonItem 进行共享时 iPad 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
通过外观为 UIBarButtonItem 设置背景图像不适用于其他 UIControlStates
UIActivityViewController 将 sourceView 设置为 UIBarButtonItem