【问题标题】:Force dismiss iOS share sheet manually Swift iOS 8 and 9手动强制关闭 iOS 共享表 Swift iOS 8 和 9
【发布时间】:2015-12-21 11:01:46
【问题描述】:

我正在使用UIActivityViewController 来显示选项。然后选择 Twitter 或 Facebook,出现 iOS 分享表

有没有办法手动关闭共享表? 我看不到任何代表。

这是我的代码:

let arrObjectsToShare = [self, finalTextToShare, secondActivityItem]

let activityVC = UIActivityViewController(activityItems: arrObjectsToShare, applicationActivities: nil)
activityVC.excludedActivityTypes = [
                    UIActivityTypePostToWeibo,....etc]

activityVC.completionWithItemsHandler = {(activityType: String?, bool: Bool, dictType: [AnyObject]?, error: NSError?) -> Void in
    print(activityType)
    }

self.presentViewController(activityVC, animated: true, completion: nil)

提及: 当 iOS 共享表显示在屏幕上时,也会显示键盘。 至少我试图关闭键盘,但没办法:

self.view.endEditing(true)

这方面真的需要帮助。 谢谢

UPDATE1 - 添加了屏幕截图

【问题讨论】:

  • 它是一个视图控制器。像使用 presentViewController:animated:completion: 呈现的任何其他视图控制器一样关闭它。
  • @maddy 我正在使用上述方法展示 UIActivityViewController。但是当 iOS Share Sheet 启动时,这个会被忽略。我不确定是否有效。

标签: ios swift uiactivityviewcontroller uiactivity ios-sharesheet


【解决方案1】:

您可以通过以下方式关闭活动视图控制器:

self.dismissViewController(activityVC, animated: true, completion: nil)

【讨论】:

  • 感谢您的及时回复。知道如何检查屏幕上是否显示 iOS 共享表吗?
  • @Bonnke 您可以在完成处理程序中使用一些标志来知道它已被显示。
  • @rshev 在用户点击 iOS 共享表的 CANCEL 或 POST 后调用完成处理程序。我需要手动使其无效。
  • @Bonnke 我的意思是completionpresentViewController 中。
  • @rshev 我不确定你是否明白我的问题。 presentViewController 内的completion 在显示UIActivityViewController 后被调用。我需要强制关闭com.apple.UIKit.activity.PostToTwitter iOS Share Sheet
【解决方案2】:

如果显示iOS Share Sheet,则调用此方法: self.dismissViewControllerAnimated(true, completion: nil) 分享表已成功关闭。

【讨论】:

  • 请再问一个问题。这不是答案。
  • 如果您有新问题,请点击 按钮提出问题。如果有助于提供上下文,请包含指向此问题的链接。
  • @HatemAlimam 我提供了答案。它工作完美。但我问了一个新问题。谢谢
  • @MarkoNikolovski 我将创建一个新问题,并添加此帖子的链接。提前致谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 2013-12-23
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多