在完成活动之前关闭 UIActivityView

Posted

技术标签:

【中文标题】在完成活动之前关闭 UIActivityView【英文标题】:Dismiss UIActivityView before completing the activity 【发布时间】:2013-09-19 09:09:14 【问题描述】:

我正在使用自定义 UIActivityfacebook 朋友墙上分享图片。

我使用customViewController 来显示TableView,让用户选择要分享照片的朋友,我从覆盖的activityViewController 方法返回,然后调用activityDidFinish facebook 操作已完成,我的ViewController 被关闭。

这很好,但我想: 在用户按下按钮直接发布到facebook后关闭我的ViewController,然后在后台异步执行任务,以便用户在此期间做其他事情。

更简单地说: 在我调用 activityDidFinish: 之前,在视觉上关闭自定义 ViewController

所以当我按下按钮时:

[FBRequestConnection startWithGraphpath:[NSString stringWithFormat:@"%@/photos",uid] parameters:postVariablesDictionary HTTPMethod:@"POST" completionHandler:
 ^(FBRequestConnection *connection,
   id result,
   NSError *error)
 
    if (!error)
    
        [self activityDidFinish:YES];
    
    else
    
        [self activityDidFinish:NO];
    
 ];

但我已经想在那之前关闭我的ViewControllervisually,因为在这种情况下,我们实际上必须查看活动是否完成,例如在 Apple 提供的默认 Facebook 活动中发布到您自己的墙上, ModalViewController 在你按下 post 按钮后立即关闭。

【问题讨论】:

【参考方案1】:

这是一个工作示例:

[示例] http://www.apeth.com/iosBook/ch26.html#_activity_view

请注意,我们最终调用了activityDidFinish:。这就是破坏原始界面的原因。这可能是您省略的步骤。如果没有,只需将您正在做的事情与我正在做的事情进行比较,因为我正在做的事情(在 iPhone 上)。

【讨论】:

感谢您的意见。但我觉得你没有完全理解我的问题。当用户单击“发布到朋友墙”按钮时,操作可能需要 2-3 秒才能完成,那时我可以说它是否有错误并适当地调用 activityDidFinish:YES 或 NO。在这 2-3 秒内,我的自定义 ViewController 仍在显示;这是我不想要的部分。在 doDone: 方法中的示例中说,您将有一个耗时的操作,您希望直接关闭视图,然后如果它正确完成则返回......

以上是关于在完成活动之前关闭 UIActivityView的主要内容,如果未能解决你的问题,请参考以下文章

在第一次运行后调用时完成()不关闭活动

在 onCreate() 之前,Android 系统服务不可用于活动 [关闭]

使用完成按钮单击关闭 android 活动(完全,甚至不在后台)

从通知中导航到父活动

完成 onCreate 中的活动时,如何在 onCreate 之前调用我的片段的 onCreateView?

完成之前的所有活动