- (IBAction)sendPost:(ID)sender{ NSArray *activityItems = nil; UIImage *appIcon = [UIImage imagenamed:@"appIcon.png"]; Nsstring *postText = [[Nsstring alloc] initWithFormat:@"LETS ASSUME THIS STRING IS LONGER THAN 140 CHaraCTERS THAT TWITTER PROHIBITS BUT CAN STILL BE SHARED VIA FACEBOOK,EMAIL,TEXT"]; activityItems = @[postText,appIcon]; UIActivityVIEwController *activityController = [[UIActivityVIEwController alloc] initWithActivityItems:activityItems applicationActivitIEs:nil]; [self presentVIEwController:activityController animated:YES completion:nil];}
问题是:postText超过140个字符,因此无法通过twitter共享,字符数将是-x(你通过twitter分享的红色字符数),我的问题是:如何我可以做一个例外,以便不同的消息说shortPostText将是选择twitter进行共享时使用的那个吗?
一旦你发送了sendPost动作,我就看不到为twitter明确设置字符串的方法了:
编辑:我不明白为什么有人会对这个问题进行投票,我不会问如何制作if / else语句或如何编程.这是一个真正的问题,需要一个真正的答案.
更新:我需要解决这个问题,因为当用户尝试通过我的应用程序中的Twitter分享时,这是我得到的:
红色/负号字符指示符和非活动帖子按钮,因此除非字符数减少到0或更少,否则不允许帖子转到twitter.
解决方法 TL; DR根据用户选择的内容,将 UIActivityItemSource用于特殊情况有效负载.试试这个:
- (IBAction)sendPost:(ID)sender{ UIImage *appIcon = [UIImage imagenamed:@"appIcon.png"]; Nsstring *postText = [[Nsstring alloc] initWithFormat:@"LETS ASSUME THIS STRING IS LONGER THAN 140 CHaraCTERS THAT TWITTER PROHIBITS BUT CAN STILL BE SHARED VIA FACEBOOK,TEXT"]; TextItemSource *itemSource = [[TextItemSource alloc] initWithString:postText prevIEwImage:appIcon]; UIActivityVIEwController *activityController = [[UIActivityVIEwController alloc] initWithActivityItems:@[itemSource] applicationActivitIEs:nil]; [self presentVIEwController:activityController animated:YES completion:nil];}// ------- TextItemSource.h@interface TextItemSource : NSObject <UIActivityItemSource>- (ID)initWithString:(Nsstring *)string prevIEwImage:(UIImage *)prevIEwImage;@end// ------- TextItemSource.m@implementation TextItemSource{ Nsstring *_string; UIImage *_prevIEwImage;}- (ID)initWithString:(Nsstring *)string prevIEwImage:(UIImage *)prevIEwImage{ self = [super init]; if (self) { _string = [string copy]; _prevIEwImage = prevIEwImage; } return self;}- (ID)activityVIEwControllerPlaceholderItem:(UIActivityVIEwController *)activityVIEwController{ return _string;}- (ID)activityVIEwController:(UIActivityVIEwController *)activityVIEwController itemForActivityType:(Nsstring *)activityType{ Nsstring *string = _string; if ([activityType isEqual:UIActivityTypePostToTwitter]) {#pragma mark Todo: do smarter thing :) string = [_subject substringToIndex:140]; } return string;}- (UIImage *)activityVIEwController:(UIActivityVIEwController *)activityVIEwController thumbnailImageForActivityType:(Nsstring *)activityType suggestedSize:(CGSize)size{ // might want to scale image to fit suggestedSize return _prevIEwImage;}@end总结
以上是内存溢出为你收集整理的ios – 如何为Twitter /行动表制作社交分享例外?全部内容,希望文章能够帮你解决ios – 如何为Twitter /行动表制作社交分享例外?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)