在完成活动之前关闭 UIActivityView
Posted
技术标签:
【中文标题】在完成活动之前关闭 UIActivityView【英文标题】:Dismiss UIActivityView before completing the activity 【发布时间】:2013-09-19 09:09:14 【问题描述】:我正在使用自定义 UIActivity
在 facebook 朋友墙上分享图片。
我使用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];
];
但我已经想在那之前关闭我的ViewController
visually,因为在这种情况下,我们实际上必须查看活动是否完成,例如在 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 活动(完全,甚至不在后台)