1

我创建了一个操作表,我想显示 Facebook 共享选项。我不想使用 Composeviewcontroller。我的问题是:如果用户安装了 IOS6,是否可以只显示 Facebook 共享选项?代码片段将非常有用。我添加了社交框架并创建了一个带有一些按钮的操作表:

UIActionSheet *actionsheet = [[UIActionSheet alloc] initWithTitle:@"Empfehlen" delegate:(id)self cancelButtonTitle:@"Abbrechen" 破坏性ButtonTitle:nil otherButtonTitles:@"via Mail", @"via iMessage/SMS",@"Tweet" , 无];

有没有人建议或解决方案该怎么做?

我的应用程序使用 iOS 5,我想保留它。

谢谢。

4

2 回答 2

4

这是对 OP 在评论部分提出的后续问题的回答。

在 iOS 6+ 下你可以使用一段UIActivityViewController时间,在 iOS 5 下你仍然可以使用UIActionSheet.

Class avcClass = NSClassFromString(@"UIActivityViewController");
if (avcClass) {
    NSArray *items = @[ xxx ]; // create one or more activity item objects for this
    UIActivityViewController *avc = [[avcClass alloc] initWithActivityItems:items applicationActivities:nil];
    [self presentViewController:abc animated:YES completion:nil];
} else {
    // create and show an action sheet
}
于 2012-11-02T20:42:31.197 回答
2

UIActionSheet *actionsheet;

if([SLComposeViewController class] != nil)//some class only available in ios6
{
    actionsheet = [[UIActionSheet alloc] initWithTitle:@"Empfehlen" delegate:(id)self 
cancelButtonTitle:@"Abbrechen" destructiveButtonTitle:nil otherButtonTitles:@"via Mail", @"via iMessage/SMS",@"Tweet", @"Facebook", nil];
}
else
{
    actionsheet = [[UIActionSheet alloc] initWithTitle:@"Empfehlen" delegate:(id)self 
cancelButtonTitle:@"Abbrechen" destructiveButtonTitle:nil otherButtonTitles:@"via Mail", @"via iMessage/SMS",@"Tweet", nil];
}

您只是在检查要共享的内容是否存在以及是否显示该选项。

于 2012-11-02T19:06:44.200 回答