2016-06-02 12 views
3

UIActivityViewController 및 taler를 각 메시지를 활동 유형 (전자 메일/SMS/Facebook/Twitter/etc)으로 만들려고합니다. 나는 사람들이 객관적으로이 일을하는 많은 방법을 읽었습니다. 하지만 Xamarin/Monotouch로 어떤 이유로 든 작동시키지 못합니다. Xamarin에서이 작업을 수행 한 사람이 있습니까? 목표 - C이의Xamarin IOS에서 ActivityType을 기반으로 공유 메시지를 사용자 정의하십시오.

예 : 나는 몇 가지 예를 본 적이http://www.albertopasca.it/whiletrue/2012/10/objective-c-custom-uiactivityviewcontroller-icons-text/

는 응용 프로그램 활동의 배열과 함께 활동 항목의 배열에 패스 같은 일을. Xamarin에서 어떻게 할 수 있습니까? UIActivityTypes은 NSStrings하고 나는 통과 할 수있는 NSString [] 나는 또한 UIActivityItemProvider를 서브 클래스와 GetItemForActivity 방법을 사용하여,하지만 난 내 UIActivityViewController를 초기화하는 방법을 알고 '해달라고 해봤 UIActivityViewController

NSObject[] activityItems = new NSObject[] { item1, item2, item3, image }; 
NSString[] applicationActivities = new NSString[] { UIActivityType.Mail, UIActivityType.PostToTwitter, UIActivityType.Message }; 

UIActivityViewController activityController = new UIActivityViewController (activityItems, applicationActivities); 

의 생성자로 그 UIActivityItemProvider와 함께. Xamarin에서 어떻게 할 수 있습니까?

public class MyActivityItemProvider : UIActivityItemProvider 
{ 
    public MyActivityItemProvider() 
    { 
    } 

    public override NSObject GetItemForActivity (UIActivityViewController activityViewController, NSString activityType) 
    { 
     return base.GetItemForActivity (activityViewController, activityType); 
    } 
} 

답변

4

알아보기

MyActivityItemProvider myActivityItemProvider = new MyActivityItemProvider (new NSString("blah blah blah")); 
NSObject[] activityItems = new NSObject[] { myActivityItemProvider }; 
UIActivityViewController activityController = new UIActivityViewController(activityItems, null); 

서브 클래 싱 UIActivityItemProvider :

public class MyActivityItemProvider : UIActivityItemProvider 
{ 
    public MyActivityItemProvider (NSObject a_placeholderItem) : base (a_placeholderItem) 
    { 
    } 

    public override NSObject GetItemForActivity (UIActivityViewController activityViewController, NSString activityType) 
    { 
     if (activityType == UIActivityType.Mail) 
     { 
      return new NSString("Email body"); 
     } 
     else if (activityType == UIActivityType.Message) 
     { 
      return new NSString("Message body"); 
     } 
     else if (activityType == UIActivityType.PostToTwitter) 
     { 
      return new NSString("Tweeeety"); 
     } 

     return base.GetItemForActivity (activityViewController, activityType); 
    } 
} 

내 서브 클래스 UIActivityItemProvider를 사용하여 UIActivityViewController 만들기 ..., 당신은 활동 항목으로 당신의 서브 클래스 UIActivityItemProvider을 통과 밝혀