0

기본적으로 UIActivityViewController으로 오는 "취소"단추가 있습니다. 버튼을 눌렀을 때 어떻게 메소드를 호출 할 수 있습니까?UIActivityViewController "Cancel"단추를 처리하는 방법

나는 오디오 파일을 공유하기 위해이 코드를 작성했습니다.

NSURL* outURL; 
UIActivityViewController *controller; 

if (&UIActivityTypeAirDrop != NULL) { 
    controller.excludedActivityTypes = @[UIActivityTypeAirDrop]; 

    for (int i=0;i<[arrayselecturls count];i++) { 
     str_SongsselectName=[[arrayselecturls objectAtIndex:i] objectForKey:@"Song"]; 

     NSString* ext = [TSLibraryImport extensionForAssetURL:[[arrayselecturls objectAtIndex:i] objectForKey:@"SongURl"]]; 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 
     outURL = [[NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent:[[arrayselecturls objectAtIndex:i] objectForKey:@"Song"]]] URLByAppendingPathExtension:ext]; 

     NSString *str_selectfilename=[NSString stringWithFormat:@"%@.mp3",str_SongsselectName]; 
     //  NSURL *url = outURL; 
     //  NSLog(@"url is %@",url); 
     NSArray *objectsToShare = [NSArray arrayWithObjects:outURL,str_selectfilename, nil]; 
     // objectsToShare = @[outURL]; 
     controller = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 
     // Exclude all activities except AirDrop. 
     NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook, 
             UIActivityTypePostToWeibo, 
             UIActivityTypeMessage, UIActivityTypeMail, 
             UIActivityTypePrint, UIActivityTypeCopyToPasteboard, 
             UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, 
             UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, 
             UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo]; 
     controller.excludedActivityTypes = excludedActivities; 
    } 
    [self presentViewController:controller animated:YES completion:nil]; 

} 
else{ 
    UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"Your device has no Airdrop!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [Alert show]; 
} 
+0

감사합니다. – Ravikumar

답변

-1

oooooop! 나는 해결책을 얻었다.이 해결책은 나를 위해 잘 작동한다.

-(IBAction)ActionArtsist_airdropClick:(id)sender{ 
    view_shareView.hidden=YES; 
    borderImageView . hidden =YES; 
    darkBg . hidden =YES; 
    view_artistdarlView.hidden=YES; 

    tblv_albumSongTableView.userInteractionEnabled=YES; 
    Data = [NSData dataWithContentsOfURL: exportURL]; 
    UIActivityViewController *controller; 

    if (&UIActivityTypeAirDrop != NULL) { 
     controller.excludedActivityTypes = @[UIActivityTypeAirDrop]; 

    NSString *str_selectfilename; 

    for (int i=0;i<[arr_atistsongsSelct count];i++) { 
     str_songsSlelectName=[[arr_atistsongsSelct objectAtIndex:i] objectForKey:@"songsName"]; 

     NSString* ext = [TSLibraryImport extensionForAssetURL:[[arr_atistsongsSelct objectAtIndex:i] objectForKey:@"songsURl"]]; 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 
     NSURL* outURL = [[NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent:[[arr_atistsongsSelct objectAtIndex:i] objectForKey:@"songsName"]]] URLByAppendingPathExtension:ext]; 

     str_selectfilename=[NSString stringWithFormat:@"%@.mp3",str_songsSlelectName]; 

     NSArray *objectsToShare = [NSArray arrayWithObjects:outURL,str_selectfilename, nil]; 
     controller = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 
     // Exclude all activities except AirDrop. 
     NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook, 
             UIActivityTypePostToWeibo, 
             UIActivityTypeMessage, UIActivityTypeMail, 
             UIActivityTypePrint, UIActivityTypeCopyToPasteboard, 
             UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, 
             UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, 
             UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo]; 
     controller.excludedActivityTypes = excludedActivities; 
    } 

이것은 처리 기능입니다. 내 질문에 편집 여기 개까지

 **[controller setCompletionHandler:^(NSString *activityType, BOOL completed) { 
      if (!completed) 
      { 

       [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
       [[UIApplication sharedApplication] beginIgnoringInteractionEvents]; 
       [self performSelector:@selector(ActiviHideArtistSong) withObject:self afterDelay:4.0 ]; 

      } 

      return; 
     }];** 

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

} 
    else{ 
     UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"Your device has no Airdrop!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [warningAlert show]; 
    } 
} 

-(void)ActiviHideArtistSong{ 
    [self btnimageArtistSongscheck_lick:nil]; 

} 
관련 문제