如果安装了IOS 6,则在操作表上显示按钮

时间:2012-11-02 18:32:09

标签: iphone objective-c ios facebook ios6

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

  

UIActionSheet * actionsheet = [[UIActionSheet alloc]   initWithTitle:@“Empfehlen”代表:(id)self   cancelButtonTitle:@“Abbrechen”destructiveButtonTitle:nil   otherButtonTitles:@“via Mail”,@“via iMessage / SMS”,@“Tweet”,nil];

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

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

感谢。

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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];
}

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