2013-03-18 45 views
1

我在我的应用程序中创建并提供了UIActivityViewController,其中包含自定义UIActivity项。何时以及如何解除UIActivityViewController

当我点击UIActivity图标,UIActivityViewController滑落并呈现我的模态视图控制器。但是,当我解雇我的VC时,出现了UIActivityViewController

当活动项目被按下时,我怎样才能让它消失,再也不会再出现?

+0

你读这个公认的答案post..i觉得它确实有助于you..http://stackoverflow.com/questions/14570753/lack-of-a-close- button-on-uiactivityviewcontroller – Shivaay 2013-03-19 06:48:12

回答

2

您需要拨打所选UIActivity上的activityDidFinish:方法。

从文档为UIActivity activityDidFinish:

讨论
此方法驳回由UIActivityViewController对象提供的共享界面。如果您使用activityViewController方法提供视图控制器,则此方法也会取消该视图控制器。

您必须在完成与此对象的服务关联的工作后调用此方法。无论您是使用activityViewController还是performActivity方法启动服务,情况都是如此。在调用方法时,使用布尔值指示服务是否成功完成。

+1

什么时候应该调用activityDid完?当我在VC提交时调用它时,VC被解雇,之后UIActivityVC下滑。另一个问题:我不想让我的风投知道谁在介绍它。理想情况下,应该在UIActivityVC中呈现ViewControllerWillBeDismissed方法,这样我也可以解散UIActivityVC。 – msmialko 2013-03-19 11:10:59

+0

你不会解雇你的VC。当用户完成VC时,你可以在活动上调用'activityDidFinish:'。正如我引用的文档中所述,这将驳回风险投资和活动观点。 – rmaddy 2013-03-19 16:00:09

+0

如果您想完全控制VC何时以及如何呈现和解散,请在您的活动中尽快调用“activityDidFinish:”。然后自己出示VC,而不是从活动中返回。那么,当然,你适当的时候会解雇它。 – rmaddy 2013-03-19 16:02:08

2

让当活动一个从UIActivityVC选择,要在当前视图控制器Ç呈现模式视图控制器中号说。

如果实现一个-(UIViewController*)activityViewController方法,你需要调用[A activityDidFinish]在模态视图控制器中号的解雇法;

如果实现-(void) performActivity方法,这是不可能的呈现模态的视图,因为当前视图控制器Ç是驳回UIActivityVC的过程。

我认为最终的解决方案有点棘手。我的基本思想是将UIActivityViewController分类并覆盖-(void) viewDidDisappear方法。因此,你可以做任何你喜欢(即展示自己的模式的看法,或按其他视图控制器的序列)在当前视图控制器C.

+0

我有一个问题从视图控制器M回来,试图提出AddScreen:在WBTabBarController:它已经呈现UIActivityViewController,是因为我不关闭uiactivityVC? – Skovie 2013-12-05 17:04:34

+0

我也面临着与skovie相同的问题。 @skovie你找到了这个 – 2014-09-04 12:07:23

+0

的任何解决方案我没有阅读代码,但我想这是同样的问题,因为当前的模态视图控制器没有被解雇时,试图呈现模态视图控制器,尝试提出第二模态视图控制器时,第一模态视图控制器的' - (void)viewDidDisappear' – 2014-09-11 02:41:54

0

,我发现这个由阮经黄

 [self presentViewController: activityController animated: YES completion:nil]; 



     activityController.modalPresentationStyle = UIModalPresentationPopover; 
     UIPopoverPresentationController *popPC = activityController.popoverPresentationController; 
     popPC.barButtonItem = saveBtn; 
     popPC.permittedArrowDirections = UIPopoverArrowDirectionAny; 

读取所有约在这里:

http://getnotebox.com/developer/uiactivityviewcontroller-ios-8/

相关问题