Ios 检测UIActivityViewController的解除
我需要呈现一个视图,在UIActivityViewController移动到父VC之后Ios 检测UIActivityViewController的解除,ios,objective-c,xcode,Ios,Objective C,Xcode,我需要呈现一个视图,在UIActivityViewController移动到父VC之后 ... UIActivityViewController *avvc = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil]; [self presentViewController:avvc animated:YES completion:nil]; 希望这对您有所帮助。
...
UIActivityViewController *avvc = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil];
[self presentViewController:avvc animated:YES completion:nil];
希望这对您有所帮助。Swift 3版
avvc.completionWithItemsHandler = { (activityType, completed:Bool, returnedItems:[Any]?, error: Error?) in
if completed {
// Do something
}
}
Xamarin/C#
我只想澄清一下,布尔值
completed
表示单个UIActivity
的完成状态。如果UIActivityViewController
在没有任何操作的情况下被解除,则activityType
的值将为nil
,而completed的值将为false
[avvc setCompletionWithItemsHandler:^(UIActivityType _Nullable activityType, BOOL completed,
NSArray * _Nullable returnedItems,
NSError * _Nullable activityError) {
if (activityType == nil) {
NSLog(@"UIActivityViewController dismissed without any action.");
} else {
NSLog(@"completionWithItemsHandler, activityType: %@, completed: %d, returnedItems: %@, activityError: %@",
activityType, completed, returnedItems, activityError);
}
}];
布尔值
completed
表示单个UIActivity
的完成状态。如果UIActivityViewController
在不执行任何操作的情况下被解除,则activityType
的值将为零,completed的值将为false
。在OP的场景中,如果视图控制器取消共享活动,则视图控制器不会被解除。此答案现在已被弃用,使用下面的@Bijoy Thangaraj答案。更重要的是,每次操作完成时都会调用此完成,而不仅仅是在取消操作时
avvc.CompletionWithItemsHandler = MyCompletionWithItemsHandler;
// ...
void MyCompletionWithItemsHandler(NSString activityType, bool completed, NSExtensionItem[] returnedItems, NSError error)
{
if (completed)
{
// Did not tap Cancel
}
else
{
// Cancel was tapped
}
}
[avvc setCompletionWithItemsHandler:^(UIActivityType _Nullable activityType, BOOL completed,
NSArray * _Nullable returnedItems,
NSError * _Nullable activityError) {
if (activityType == nil) {
NSLog(@"UIActivityViewController dismissed without any action.");
} else {
NSLog(@"completionWithItemsHandler, activityType: %@, completed: %d, returnedItems: %@, activityError: %@",
activityType, completed, returnedItems, activityError);
}
}];