gpt4 book ai didi

当我选择 "Print"菜单并取消它时,不会在 iOS 10.0 上调用 UIActivityViewController.completionWithItemsHandler

转载 作者:行者123 更新时间:2023-12-04 08:44:14 26 4
gpt4 key购买 nike

我创建了一个简单的应用程序,它使用 UIActivityViewController如下。

    let text = "Test Text"
let printData = UISimpleTextPrintFormatter(text: text)
let vc = UIActivityViewController(activityItems: [text, printData], applicationActivities: nil)
vc.completionWithItemsHandler = { (type,completed,items,error) in
print("completed. type=\(type) completed=\(completed) items=\(items) error=\(error)")
}

vc.modalPresentationStyle = .popover
vc.popoverPresentationController?.sourceView = self.openActivityButton
vc.popoverPresentationController?.sourceRect = self.openActivityButton.bounds
vc.popoverPresentationController?.permittedArrowDirections = .up
vc.popoverPresentationController?.delegate = self

self.present(vc, animated: true) { () in
}

我在 iOS 10(Xcode 8.0 beta 6)上运行这个应用程序。
  • 当我关闭事件对话框时,completionWithItemsHandler叫做。
  • 当我选择“复制”事件时,completionWithItemsHandler叫做。
  • 当我选择“邮件”事件并取消它时,completionWithItemsHandler叫做。
  • 但是,当我选择 “打印”事件并取消它,completionWithItemsHandler不是 叫。

  • 这种奇怪的行为发生在 iOS 10 上,但没有发生在 iOS9 上(处理程序在 iOS9 上被调用)

    这是 iOS 10 的错误吗?如果是这样,是否有任何解决方法来检测 UIActivityController被解雇?

    我在 https://github.com/kunichiko/ios10-activity-bug 上推送了这个示例应用程序

    最佳答案

    我有一个类似的问题。在我的例子中,我注意到没有调用完成处理程序,因为 UIActivityController 已经被解除和解除分配。我所做的只是添加一个属性来保存强引用,然后将其设置为 nil。然后完成处理程序被正确调用。

    关于当我选择 "Print"菜单并取消它时,不会在 iOS 10.0 上调用 UIActivityViewController.completionWithItemsHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39032066/

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