[ios] 사용 가능한 공유 옵션이있는 기본 iOS 6 공유 작업 시트를 표시하는 방법은 무엇입니까?

일부 앱은 공유 옵션이있는 iOS 6의 기본 작업 시트를 표시합니다.

Social Framework 에는 작성 용과 요청 용으로 하나씩 만 두 개의 클래스가 있습니다.

내가 찾은 것은 SLComposeViewController를 사용하여 특정 서비스를 작성하는 것에 관한 것이며 이것을 표시하기 전에 서비스를 사용할 수 있는지 직접 쿼리해야합니다. 그리고 나만의 아이콘으로 나만의 액션 시트를 만들어야합니다.

이러한 앱은 iOS 6에서이 기본 공유 옵션 작업 시트를 어떻게 표시합니까? 아니면 오픈 소스 프레임 워크를 사용하고 있습니까?



답변

UIActivityViewController 다른 대답에 명시된이 사소한한다. 공유 할 텍스트 / 이미지 / URL을 지정하고 활동보기 컨트롤러를 모달로 표시하면 iOS가 적용 가능한 모든 공유 서비스를 자동으로 표시합니다. 예 :

목표 -C

- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(URL *)url
{
    NSMutableArray *sharingItems = [NSMutableArray new];

    if (text) {
        [sharingItems addObject:text];
    }
    if (image) {
        [sharingItems addObject:image];
    }
    if (url) {
        [sharingItems addObject:url];
    }

    UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
    [self presentViewController:activityController animated:YES completion:nil];
}

빠른

func share(sharingText: String?, sharingImage: UIImage?, sharingURL: URL?) {
    let sharingItems:[AnyObject?] = [
                                        sharingText as AnyObject,
                                        sharingImage as AnyObject,
                                        sharingURL as AnyObject
                                    ] 
    let activityViewController = UIActivityViewController(activityItems: sharingItems.compactMap({$0}), applicationActivities: nil)
    if UIDevice.current.userInterfaceIdiom == .pad {
        activityViewController.popoverPresentationController?.sourceView = view
    }
    present(activityViewController, animated: true, completion: nil)
}


답변

를 사용하려면이 추가 UIActivityViewController.

-(IBAction)shareButtonPressed:(id)sender {

    NSLog(@"shareButton pressed");

    NSString *texttoshare = _txt; //this is your text string to share
    UIImage *imagetoshare = _img; //this is your image to share
    NSArray *activityItems = @[texttoshare, imagetoshare];    
    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint];
    [self presentViewController:activityVC animated:TRUE completion:nil];
}


답변