2012-11-02 32 views
6

Tôi đã triển khai UIActivityViewController để chia sẻ một số thông tin. Trong trường hợp này tôi có một câu hỏi: Có thể tạo ra một văn bản khác giữa chia sẻ facebook/chia sẻ twitter/hoặc chia sẻ thư không? Văn bản được đặt khác với văn bản khác ...Cách thêm văn bản khác vào đối tượng UIActivityViewController

Hướng dẫn UIActivityViewController tốt sẽ rất hữu ích.

Mã của tôi vào thời điểm đó là, để hiển thị văn bản và hình ảnh:

NSString *text = @"Lime Cat"; 
     UIImage *image = [UIImage imageNamed:@"MyApp Icon 512x512.png"]; 
     NSArray *items = [NSArray arrayWithObjects:text,image , nil]; 

Nhưng làm thế nào tôi có thể quản lý nó rằng NSString là chỉ dành cho mail, và thực hiện một NSString riêng biệt cho các tùy chọn chia sẻ facebook?

Mọi đề xuất?

Cảm ơn.

Trả lời

13

bạn có thể vào link dưới đây, có một hướng dẫn có thể giúp bạn:

http://www.albertopasca.it/whiletrue/2012/10/objective-c-custom-uiactivityviewcontroller-icons-text/

+0

cảm ơn sự giúp đỡ của bạn – MasterRazer

+0

Liên kết đó hiện đã chết. Đối với câu trả lời trong tương lai, hãy xem xét rằng bạn trả lời nên có ý chính của giải pháp và không nên dựa vào bất kỳ liên kết nào. – solidcell

4

Bạn có thể có lớp học của bạn phù hợp với các giao thức UIActivityItemSource và thực hiện activityViewController:itemForActivityType:. activityType sẽ là ứng dụng FB, Twitter, Tin nhắn, v.v., vì vậy bạn có thể thực hiện chuyển đổi và trả về một đối tượng khác dựa trên hoạt động.

+1

Đây là câu trả lời hay hơn. Chỉ cần một lưu ý, activityType không thể được chuyển vì nó là một NSString. Chỉ cần sử dụng nếu/else. – Jonny

-2
-(void)ShareImageandText:(UIButton *)sender  
{ 

NSString * texttoshare = @ "http://qrs.ly/l851gh4";

UIImage * image = [UIImage imageNamed: @ "default"];

NSString *noteStr = [NSString stringWithFormat:@"Please follow this link below to install the Freedom.desi application on your IPhone. %@",texttoshare]; 
    NSURL *url = [NSURL URLWithString:texttoshare]; 

    NSArray *activityItems = @[noteStr,image]; 

    NSLog(@"this %@",activityItems); 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { 
     UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[noteStr,image] applicationActivities:nil]; 
     activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint]; 

     [self shareText:noteStr 
       andImage:image andUrl:nil]; 

     [self presentViewController:activityVC animated:TRUE completion:nil]; 

    } 
    //if iPad 
    else { 
     // Change Rect to position Popover 
     UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[noteStr, url] applicationActivities:nil]; 
     activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint]; 

     [self shareText:noteStr 
       andImage:image andUrl:nil]; 

     UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityVC]; 
     [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

    } 

} 
Các vấn đề liên quan