Cus*_*are 22 ios uiactivityviewcontroller swift
使用Swift作为在iOS 8中运行的应用程序,我需要编写一个完成处理程序,UIActivityViewController
以捕获用户选择的"共享"方法的结果.
这是我到目前为止的代码片段.我的问题是如何设置avc.completionWithItemsHandler
?我确信它很简单,但我没有看到它.
var activityItems = NSMutableArray()
activityItems.addObject("Email or text for 'share' goes here")
var avc = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
avc.setValue("Subject for Email", forKey: "Subject")
avc.completionWithItemsHandler = //Here is where I dont know what to do.
self.navigationController?.presentViewController(avc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
Ian*_*Ian 36
completionWithItemsHandler typealias:
typealias UIActivityViewControllerCompletionWithItemsHandler = (String?, Bool, [AnyObject]?, NSError?) -> Void
Run Code Online (Sandbox Code Playgroud)
注意:以前的代码块不会在您的项目中使用,它只显示所需的闭包类型(docs).
所以这些是传递给完成处理程序的参数,你可以这样做,所以完成处理程序看起来像这样:
avc.completionWithItemsHandler = { activity, success, items, error in
}
Run Code Online (Sandbox Code Playgroud)
Jan*_*ann 12
注意:因为我没有阅读问题的"SWIFT"部分,所以我在Obj-C中回答了这个问题.我的坏,对OP:我道歉
这是一个更完整的答案,实际上可以编译.我用过:dispatch_async
为了做一个警报,你可以看到"activityType"最终是什么.
avc.completionWithItemsHandler = ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertViewQuick(@"Activity Status", activityType, @"OK");
});
if (completed)
{
NSLog(@"The Activity: %@ was completed", activityType);
}
else
{
NSLog(@"The Activity: %@ was NOT completed", activityType);
}
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12322 次 |
最近记录: |