노블의 개발이야기

[iOS] UIActivityViewController 본문

iOS

[iOS] UIActivityViewController

더플러스 2015. 7. 13. 15:16

UIActivityViewController


UIActivityViewControllersm는 iOS 6에서 새롭게 추가된 클래스로서, 이 클래스를 활용하면 뷰 컨트롤러가 컨텐츠를 여러 서비스(OS내 설치된 어플리케이션)에게 공유할 수 있게 해준다.

공유 대상 서비스의 범위는 SNS 또는 이메일, 클립보드 복사하기와 iOS 소셜 프레임워크로 추가된 트위터(Twitter), 페이스북(Facebook), 웨이보(Weibo)가 해당된다.


UIActivityViewController는 UIDocumentInteractionController와 성격이 다르다.

두 클래스 모두 데이터를 다른 앱과 공유한다는 목적은 같으나 UIDocumentInteractionController는 리소스 파일 기반의 공유(예를 들어 윈도우의 특정 확장자에 대한 연결 프로그램)이고 UIActivityViewController는 공유할 수 있는 앱은 한정되어 있으나 객체 기반의 공유이다. 

UIActivityViewController가 공유할 수 있는 랩은 위에서 설명하였듯이 기본 앱(SNS, 이메일, 클립보드)와 소셜 프레임워크 지원 대상(트위터, 페이스북, 웨이보)이며 그 외의 어플리케이션을 추가하고 싶으면 대상 어플리케이션이 UIAcitivityViewController를 상송한 클래스를 제공해야 한다.



UIActivityViewController 생성

- (void)shareDataWithText:(NSString *)text url:(NSURL *)url {

    

    DCKakaoActivity *kakaoActivity = [[DCKakaoActivity alloc] init];

    DCLineActivity *lineActivity = [[DCLineActivity alloc] init];

    

    NSArray *activityItems = @[text, url];

    NSArray *applicationActivitys = @[kakaoActivity, lineActivity];

    

    UIActivityViewController *activityViewController =

    [[UIActivityViewController alloc] initWithActivityItems:activityItems

                                      applicationActivities:applicationActivitys];

    

    //Excluded Activities Code

    activityViewController.excludedActivityTypes = @[

                                                     UIActivityTypeAddToReadingList,

                                                     UIActivityTypeAssignToContact,

                                                     //UIActivityTypeMessage,

                                                     //UIActivityTypeSaveToCameraRoll,

                                                     //UIActivityTypePrint,

                                                     //UIActivityTypePostToWeibo,

                                                     //UIActivityTypeCopyToPasteboard

                                                     ];

    

    //activate the share view

    [self presentViewController:activityViewController

                       animated:YES

                     completion:nil];

}



UIActivityViewControllerSample.zip



[참고 사이트]

UIActivityViewController를 이용하여 다른 랩과 컨텐츠 공유하기

UIActivityController을 통해서 공유를 쉽게하자.

DCActivity (Kakao, Line Activity sample code)

UIAcitivyCollection (A collection of iOS6 UIActivity provides) 

Hacking the default Facebook UIActivity

CCAFacebookAppActivity

'iOS' 카테고리의 다른 글

[iOS] Framework 만들기  (0) 2015.07.14
[iOS] UIView에서 상위 UIVewController 가져오기  (0) 2015.07.13
[iOS] UIActionSheet  (0) 2015.07.13
[iOS] UIWebView 웹페이지 너비 맞추기  (0) 2015.05.14
[iOS] XML Parser  (0) 2015.05.06
Comments