2013-02-13 11 views
10

पर एक स्पष्ट (कस्टम) बटन जोड़ना मैं बस "सफारी में खोलें" स्पष्ट बटन जोड़ना चाहूंगा मैं इसे सरल तरीके से कैसे कर सकता हूं।UIActivityViewController

#pragma mark - Share the link 
- (IBAction)activityButtonPressed:(id)sender { 


    NSString *textToShare = @"I just shared this from my App"; 
    // UIImage *imageToShare = [UIImage imageNamed:@"Image.png"]; 
    NSURL *urlToShare = [NSURL URLWithString:@"http://www.google.com"]; 
    NSArray *activityItems = [NSArray arrayWithObjects:textToShare, urlToShare,nil]; 
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:Nil]; 
    //This is an array of excluded activities to appear on the UIActivityViewController 
    //activityVC.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypeCopyToPasteboard,UIActivityTypeSaveToCameraRoll]; 
    [self presentViewController:activityVC animated:TRUE completion:nil]; 


} 

उत्तर

14

को वर्ग को जोड़ने के रूप में नेवो Shalev कहा कि तुम उपवर्ग को UIActivity class

यहाँ की जरूरत की जरूरत है एक उदाहरण है:

UrlActivity.h

#import <UIKit/UIKit.h> 

@interface UrlActivity : UIActivity 

@end 

UrlActivity.m:

#import "UrlActivity.h" 

@implementation UrlActivity 

- (NSString *)activityType 
{ 
    return @"your Custom Type"; 
} 

- (NSString *)activityTitle 
{ 
    return @"Title to display under your icon"; 
} 

- (UIImage *)activityImage 
{ 
    return [UIImage imageNamed:@"your icon.png"]; 
} 

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems 
{ 
    // basically in your case: return YES if activity items are urls 
} 

- (void)prepareWithActivityItems:(NSArray *)activityItems 
{ 
    //open safari with urls (activityItems) 
} 

+(UIActivityCategory)activityCategory 
{ 
    return UIActivityCategoryShare; // says that your icon will belong in application group, not in the lower part; 
} 

@end 

और अपने मुख्य फ़ाइल में (UrlActivity.h आयात करने के बाद):

#pragma mark - Share the link 
- (IBAction)activityButtonPressed:(id)sender { 


    NSString *textToShare = @"I just shared this from my App"; 
    // UIImage *imageToShare = [UIImage imageNamed:@"Image.png"]; 
    NSURL *urlToShare = [NSURL URLWithString:@"http://www.google.com"]; 
    NSArray *activityItems = [NSArray arrayWithObjects:textToShare, urlToShare,nil]; 

    // create an array with your custom activity and add it to the activityVC 
    NSArray *appActivities = [NSArray arrayWithObjects:[[UrlActivity alloc] init]]]; 
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:appActivities]; 
    //This is an array of excluded activities to appear on the UIActivityViewController 
    //activityVC.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypeCopyToPasteboard,UIActivityTypeSaveToCameraRoll]; 
    [self presentViewController:activityVC animated:TRUE completion:nil]; 


} 
+0

छोटे सुधार: 'एनएसएआरएआरए * एपएक्टिविटीज = [एनएसएआरएआरएआरआईआईथऑब्जेक्ट्स: [[ UrlActivity alloc] init]]]; ' ' NSArray * appActivities = [NSArray arrayWithObjects: [[MobrActivityView alloc] init], nil]; '' – SpittingLlama

-6
#pragma mark - Share the link 
- (IBAction)activityButtonPressed:(id)sender { 
    NSURL *urlToShare = [NSURL URLWithString:@"http://www.google.com"]; 
    [[UIApplication sharedApplication] openURL: urlToShare]; 
} 
+0

कि एक शेयर बटन नहीं जोड़ना होगा, मैं सभी साझाकरण विकल्प गतिविधि देखना चाहता हूं दृश्य + सफारी में खुलता है – chewy

+0

आपने कहा सफारी में खुला –

+2

यह भी [Google के आसपास] को नुकसान नहीं पहुंचाता है (https://github.com/davbeck/TUSafariActivity) और [आस-पास] (http://uiactivities.com/) –

0

आप UIActivity उपवर्ग और और तरीकों को लागू करने और बाद applicationActivities

संबंधित मुद्दे