2013-06-10 28 views
56

Tôi muốn đặt chủ đề để chia sẻ email trong UIActivityViewController và cũng muốn chia sẻ trong Twitter. Tôi biết trong Twitter nếu chúng ta muốn chia sẻ - chúng ta cần nén văn bản thành 140 ký tự. Tôi đã kiểm tra nhiều giải pháp SO, nhưng không có gì hoạt động.Cách đặt chủ đề thư trong UIActivityViewController?

Sự cố này có được khắc phục trong bản phát hành iOS mới nhất không? Bất kỳ "giải pháp làm việc" nào khác?

+0

Không nó dint. Chỉ cần kiểm tra bình luận của tôi dưới đây và cho tôi biết nếu tôi bỏ lỡ đúng cách. cảm ơn bạn – Femina

Trả lời

76

Có vẻ như emreoktem của giải pháp gửi setValue:forKey: đến UIActivityViewController -là cung cấp tài liệu.

Trên iOS 7 trở lên, bạn có thể triển khai phương thức activityViewController:subjectForActivityType: trong đối tượng tuân theo giao thức UIActivityItemSource để thực hiện việc này theo cách được ghi lại.

+4

Có, 'activityViewController: subjectForActivityType:' là giải pháp đúng. Kỳ lạ là ứng dụng iOS Mail sử dụng chủ đề chính xác ** nhưng Hộp thư đến của Google ** cũng sử dụng thông báo cho chủ đề (không phải chủ đề được cung cấp qua 'subjectForActivityType') –

+1

@LeslieGodwin Bạn đã tìm thấy giải pháp nào để chia sẻ qua gmail chưa? –

+0

@TimCamber Mặc dù tôi đã thử cách trên nhưng vẫn đang hiển thị sự cố thông qua chia sẻ trong gmail. Vui lòng giúp giải quyết –

86

Kiểm tra bên dưới mã cho email lập đề email của bạn:

UIActivityViewController* avc = [[UIActivityViewController alloc] initWithActivityItems:@[@"Your String to share"] 
            applicationActivities:nil]; 
[avc setValue:@"Your email Subject" forKey:@"subject"]; 

avc.completionHandler = ^(NSString *activityType, BOOL completed) { 
    // ... 
}; 

đây dòng

[avc setValue: @ "Subject email của bạn" forKey: @ "chủ đề"] ;

Đặt chủ đề làm "Chủ đề email của bạn" nếu người dùng chọn tùy chọn email trong UIActivityViewController.

Tôi hy vọng nó sẽ giúp ...

+0

Bạn được chào đón :) – emreoktem

+1

[activityVC setCompletionHandler:^(NSString * activityType, BOOL hoàn thành) { nếu ([activityType isEqualToString: UIActivityTypeMail]) { NSLog (@ "Loại thư được chọn"); [activityVC setValue: @ "Share!" forKey: @ "subject"]; } }]; Emreoktem không hoạt động của nó! – Femina

+0

@Meenu Bạn nên đặt chủ đề * trước * bộ xử lý hoàn thành. – colinta

12

Đối Swift 2.0+ & ios 8.0+

let title = "Title of the post" 
let content = "Content of the post" 
let objectsToShare = [title, content] 

let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)  
activityVC.setValue(title, forKey: "Subject") 
self.presentViewController(activityVC, animated: true, completion: nil) 
+0

hoạt động này có chia sẻ liên kết đến một trang web không?như [tiêu đề, nội dung, liên kết] hoặc URL có phải là một phần của nội dung và cho phép ứng dụng email phân tích cú pháp và làm cho URL có thể nhấp không? – gadget00

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