在iOS 6中使用客户UIActivity子类时,可以指定一个自定义视图控制器,当您从初始UIActionViewController的视图中选择动作时将显示该控制器。您可以通过从UIActivity子类的activityViewController
方法中返回对自定义视图控制器的引用来完成此操作。UIActivity activityViewController在iPad上而不是在弹出窗口中呈现
activityViewController
此方法的默认实现返回
nil
。使用视图控制器提供其他UI的子类可以重写此方法以返回该视图控制器。如果此方法返回有效对象,则系统会为您呈现返回的视图控制器,而不是调用performActivity
方法。在iPad上,您的视图控制器显示在弹出窗口中。在iPhone和iPod touch上,您的视图控制器将以模态方式呈现。您的自定义视图控制器应该为您的自定义UI提供视图,并且应该处理这些视图内的任何用户交互。完成该活动后,请勿自行解除视图控制器。相反,请拨打
activityDidFinish:
方法,让系统为您解除它。
需要注意的是位在第一段落的末尾:在iPad上,你的视图控制器提出了一种酥料饼的内部。在iPhone和iPod touch上,您的视图控制器将以模态方式呈现。
但是,在iPad上,由activityViewController
返回的视图控制器总是以模态方式显示,无论我如何呈现UIActivityViewController(无论是通过模式还是通过弹出窗口)。当通过popover展示时,它会导致它崩溃,因为它不认为它已被解雇。
我在做什么错?这是iOS 6中的错误吗?
更新:这是一个简单的Xcode项目,说明问题。随意克隆它和玩,看看你能看到我们要去哪里错了:github.com/simonwhitaker/GSActivityDemo
什么是你的问题? – msgambel
这里同样的问题。我修改了原来的帖子以添加一个明确的问题,希望你不介意@Gujamin。 –
太宽泛,以不确定.... :(我可以开始疯狂的猜测,但我宁愿你编辑的问题,也许显示一些代码或这样的! - 哦,你用弧? –