사용자 지정 UIActivity
이 제목을 지원하도록 지정하려면 어떻게합니까?사용자 지정 UIActivity에 대한 제목
activityViewController:subjectForActivityType:
선택을 구현할 수 있음을 언급
:
때 서비스는 별도의 주제 필드에 제공 할 수있는 항목을 게시하고 데이터 필드 (예 : 이메일 메시지). 지원하는 서비스에 제목 필드를 제공하려는 경우이 메서드를 구현하십시오.
그러나 내가 알 수있는 한, 내 사용자 지정 UIActivity가 대상을 지원한다는 것을 실제로 지정할 수있는 방법은 어디에도 기록되어 있지 않습니다. 어떻게 이뤄지나요?
편집 : 내 질문에 명확하게하기 위해
, 나는 사용자 지정 작업 항목 소스를 가정하자 UIActivityItemSource
프로토콜을 구현 DocumentActivityItemSource
말, 그리고 나는 우리가 SendWithFooMessageActivity
를 호출 할 수있는 사용자 정의 UIActivity
을 보유하고 있습니다.
나는 다음 UIActivtyViewController를 시작
NSArray *activityItems = @[[[DocumentActivityItemSource alloc] initWithDocument: document]];
NSArray *applicationActivities = @[[[SendWithFooMessageActivity alloc] init]];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems
applicationActivities:applicationActivities];
[parentViewController presentViewController:activityViewController
animated:YES
completion:nil];
지금, 팝업에서 나는 SendWithFooMessageActivity
을 선택합니다. 액티비티 컨트롤러는 DocumentActivityItemSource
인스턴스에서 activityViewController:itemForActivityType:
을 호출하여 항목을 가져오고 해당 개체를 prepareWithActivityItems:
메서드로 호출하여 SendWithFooMessageActivity
으로 전달합니다.
정상적으로 활동 항목은 이미지, 문자열 또는 URL이됩니다. 이 경우 DocumentActivityItemSource
이 문서에 대한 설명이 포함 된 문자열을 반환한다고 가정 해 보겠습니다. 그러면 SendWithFooMessageActivity
은이 텍스트를 foo-mail 메시지의 본문 텍스트로 사용할 수 있습니다.
그러나 Foo 메시지도 제목이 유효해야합니다. 흥미롭게도 UIActivityItemSource
프로토콜에는 선택 항목 인 activityViewController:subjectForActivityType:
이 포함되어 있습니다. 실제로이 옵션을 지원하는 서비스를 제공하기 위해 문서화되어 있습니다.
Apple이 제공 한 전자 메일 활동의 경우 실제로는 activityViewController:subjectForActivityType:
이 DocumentActivityItemSource
에서 호출되며 그 결과가 전자 메일 제목으로 사용됩니다.
그러나 내 맞춤형 SendWithFooMessageActivity
도 activityitem에서 주제를 가져오고 싶다고 지정하는 방법이없는 것 같습니까? 문서에서는 "[주제]를 지원하는 서비스"에 대해 이러한 일이 발생한다고 언급합니다. 그렇다면 실제로 내 서비스가 실제로 지원하는 서비스를 지정하는 방법은 무엇입니까?
또한 "activityViewController:thumbnailImageForActivityType:suggestedSize:
"은 "하나를 지원하는 서비스"에 미리보기 이미지를 제공한다고 가정합니다. 이것은 기본 ShareOnTwitter 및 ShareOnFacebook 활동에서 작동하지만 맞춤 활동을 지원하는 방법은없는 것 같습니다. 이것이 가능한가?내가 단락에 activityViewController입니다 또한 아래에 제공 @chriszumberge 해결 방법을 사용하고 직접이 itemsource에서 필요한 정보와 사용자 활동 초기화 한 지금까지
:
[SendWithFooMessageActivity alloc] initWithSubject: document.title];
을하지만, 이것은 전체 UIActivityViewController
설정을 사용하는 것으로 보이지 않습니다.
프로토콜을 어떻게 구현합니까? UIActivity는 일반적으로 원시 UIActivityItemSource에 액세스 할 수 있다고 생각하지 않습니다.내가 아는 한, UIActivityItemSource는 activityViewController : itemForActivityType :에서 항목을 반환해야하며 해당 항목은 공유 할 항목에 따라 NSString, UIImage, UIImage 또는 다른 항목이어야합니다. UIActivityItemSource를 항목으로 반환 할 수 있습니까? 메일, 트위터, 페이스 북을 위해 애플이 제공하는 기본 액티비티를 작동시킬 수 있습니까? – AHM