【发布时间】:2012-11-17 18:56:16
【问题描述】:
在 iOS 6 中使用客户 UIActivity 子类时,可以指定一个自定义视图控制器,当您从初始 UIActionViewController 的视图中选择您的操作时将显示该控制器。为此,您可以从 UIActivity 子类的 activityViewController 方法返回对自定义视图控制器的引用。
activityViewController
此方法的默认实现返回
nil。使用视图控制器提供额外 UI 的子类可以覆盖此方法以返回该视图控制器。如果此方法返回一个有效对象,系统会为您呈现返回的视图控制器,而不是调用performActivity方法。在 iPad 上,您的视图控制器显示在弹出框内。在 iPhone 和 iPod touch 上,您的视图控制器以模态方式呈现。您的自定义视图控制器应该为您的自定义 UI 提供一个视图,并且应该处理这些视图中的任何用户交互。完成活动后,不要自行关闭视图控制器。相反,调用
activityDidFinish:方法并让系统为您关闭它。
请注意第一段末尾的那一点:在 iPad 上,您的视图控制器显示在弹出框内。在 iPhone 和 iPod touch 上,您的视图控制器以模态方式呈现。
但是,在 iPad 上,activityViewController 返回的视图控制器总是以模态显示,无论我如何呈现 UIActivityViewController(模态或通过弹出框)。通过弹出框呈现时,它会导致它崩溃,因为它认为它没有被关闭。
我做错了什么?这是 iOS 6 中的错误吗?
更新:这是一个说明问题的简单 Xcode 项目。随意克隆它,看看你是否能看出我们哪里出错了:github.com/simonwhitaker/GSActivityDemo
【问题讨论】:
-
这里有同样的问题。我已经修改了原始帖子以添加一个明确的问题,希望你不介意@Gujamin。
-
太宽泛了,不具体.... :(我可以开始疯狂的猜测,但我宁愿你编辑问题,也许显示一些代码之类的!-哦,你在使用弧吗?跨度>
-
这似乎与这个 openradar.appspot.com/12034514 相同,这似乎是由这个 SO 用户提交的(也基于 twitter 句柄)...stackoverflow.com/users/743524/riley-testut 也许值得给他们发消息。
-
你解决过这个问题吗?我完全无法让自定义 UIActivity 实现
activityViewController在 iPad 上正常工作。 iPhone 上没问题。 -
对于它的价值,这似乎是最简单的解决方案,但仍然有点奇怪:gist.github.com/mluton/3990658
标签: ios ipad sdk popover uiactivity