I'm trying to use an UIActivityViewController
with one long NSString
as the data. If I put a string > 140 characters, the tweet sheet in it does not display the string. And if I truncate the string before giving it to the controller, all of the UIActivities
have the truncated string. I don't want Facebook or Message to be truncated.
Is there a way to give different strings to different UIActivities
?
Thank you!
(e.g. Marco Arment's The Magazine app does this by having a truncated string followed by @TheMagazineApp in UIActivityPostToTwitter
, and other stuff in other UIActivities
.)
This can be easily done by using the optional
activityType
property from theUIActivityItemProvider
object. That property returns aUIActivityType
, so you can do something like:More information in my blog post: https://www.whitesmith.co/blog/control-what-youre-sharing/
Hope this helps somebody. It's pretty straightforward if you subclass
UIActivityItemProvider
:Then pass its instance with an array of activity items to UIActivityViewController:
I think this is what you're looking for: Custom UIActivityViewController icons and text.
You should be able to provide different data for each activity type.