一些应用程序在iOS 6中显示了带有共享选项的默认行动单.

Social Framework只有两个类,一个用于 compose ,另一个用于请求.

不过,我发现的是关于使用SLComposeViewController为特定服务编写的内容,在展示之前,我必须手动查询该服务是否可用.然后我还要用自己的图标创建自己的行动表.

这些应用程序如何在iOS 6中显示此默认共享选项操作表?或者他们使用的是开放源码框架?

推荐答案

另一个答案中所述的UIActivityViewController使这变得微不足道.您只需指定要共享的文本/图像/URL,并以模态方式显示活动视图控制器,iOS将自动显示所有适用的共享服务.示例:

Objective-C

- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(URL *)url
{
    NSMutableArray *sharingItems = [NSMutableArray new];

    if (text) {
        [sharingItems addObject:text];
    }
    if (image) {
        [sharingItems addObject:image];
    }
    if (url) {
        [sharingItems addObject:url];
    }

    UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
    [self presentViewController:activityController animated:YES completion:nil];
}

Swift

func share(sharingText: String?, sharingImage: UIImage?, sharingURL: URL?) {
    let sharingItems:[AnyObject?] = [
                                        sharingText as AnyObject,
                                        sharingImage as AnyObject,
                                        sharingURL as AnyObject
                                    ] 
    let activityViewController = UIActivityViewController(activityItems: sharingItems.compactMap({$0}), applicationActivities: nil)
    if UIDevice.current.userInterfaceIdiom == .pad {
        activityViewController.popoverPresentationController?.sourceView = view
    }
    present(activityViewController, animated: true, completion: nil)
}

Ios相关问答推荐

以编程方式更改VC&39;S导航栏按钮的属性,以响应另一个VC中的按钮按下

如何制作支持不同语言的iOS应用

Apple Metal iOS 为什么 GLKMatrix4MakeLookAt 来回摇摆

SwiftUI - TextField - 在焦点上清除 Double 类型的值,在取消 Select 时恢复

Swift/iOS:泛型错误:协议需要嵌套类型V;你想添加它吗?

SwiftUI 动画:为什么容器视图在移动?我很难理解这种行为

小部件链接有效,但不执行任何操作

Xcode 不支持 iOS 15.6

如何在 SwiftUI 中只显示一次随机数组的项目?

iOS 是否支持使用独立 .xib 文件创建的嵌套自定义子视图?

TextField 重复输入 SwiftUI

无法结合 UIImageView 旋转动画和 tableView 部分重新加载

SwiftUI NavigationLink 立即加载目标视图,无需单击

如何阻止图像在 UIImageView 中拉伸?

在 Swift 中将 HTML 转换为纯文本

为信用卡输入格式化 UITextField,例如 (xxxx xxxx xxxx xxxx)

如何动态计算 UILabel 高度?

单击 GoogleSignIn 按钮时应用程序崩溃

iOS应用程序每隔一次启动就会崩溃,找不到错误

在 iOS 上没有显示数字键盘