1.UIActivityViewController是继承自UIViewController,是拥有VC的特性

a.初始化 init  , initWithActivityItems:applicationActivities

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[@"Steve Jobs by waiter lsaacson"] applicationActivities:nil];

b.点击某个选项之后所能处理的操作 completionWithItemsHandler(Block, >8.0) completionHandler(Block, <8.0)

activity.completionWithItemsHandler = ^(NSString * __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){
NSLog(@"hahahhahaha");
if (completed) {
NSLog(@"completed");
}else{
NSLog(@"cancel");
}
};

c.剔除不需要的操作项  excludedActivityTypes

//该属性 表示去掉不想显示的按钮
activity.excludedActivityTypes = @[UIActivityTypeAirDrop,UIActivityTypeMessage];

d.展示改控制器     (中间一栏的分享型服务,下面一栏的操作型服务)

[self.navigationController presentViewController:activity animated:YES completion:nil];

     /*
[self.navigationController pushViewController:activity animated:YES]; 会报错
Snapshotting a view that has not been rendered results in an empty snapshot.
Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.
*/

2.自定义选项 Item (UIActivity子类即可)

#import <UIKit/UIKit.h>

@interface HGLActivity : UIActivity

@end
#import "HGLActivity.h"
NSString *const UIActivityTypeHGLCustomMine = @"HGLCustomActivityMine";
@implementation HGLActivity // default returns nil. subclass may override to return custom activity type that is reported to completion handler
- (NSString *)activityType{
return UIActivityTypeHGLCustomMine;
} // default returns nil. subclass must override and must return non-nil value
- (NSString *)activityTitle{ //展示的问题介绍
return NSLocalizedString(@"HGL Custom", @"");
} // default returns nil. subclass must override and must return non-nil value
- (UIImage *)activityImage{ //展示的图标
UIImage *im = [UIImage imageNamed:@"xl"];
return im;
} //可以被响应
- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems{
return YES;
} - (void)prepareWithActivityItems:(NSArray *)activityItems{
NSLog(@"prepareWithActivityItems");
//点击图片之后触发
// UIActivityViewController 传递的 activityItems
} - (void)performActivity{
NSLog(@"performActivity");
// 调用prepareWithActivityItems 之后出发
} + (UIActivityCategory)activityCategory{
// return UIActivityCategoryAction; //下面一栏的操作型服务
return UIActivityCategoryShare ; //中间一栏的分享型服务
} @end

*初始化是UIActivityViewController 最后一个参数为数组

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[@"Steve Jobs by waiter lsaacson",[[NSBundle mainBundle] URLForResource:@"hgl29" withExtension:@"txt"]] applicationActivities:@[[[HGLActivity alloc]init]]];

UIActivityViewController 系统社交化 共享的更多相关文章

  1. 社交化分享SDK for Unity

    前言 社交化分享,即分享到社交网络. 本文主要记录的是在Unity集成社交化分享SDK,现主流的分享SDK有如下: 1.友盟社交化分享 for unity 2.ShareSDK分享 for unity ...

  2. HtmlAgilityPack解析器在WP8.1下报错,不仅如此,社交化分享也报错。

    以前WP7下是用的HtmlAgilityPack和 XPath来解析网页,很好用. 但是在Wp8.1下,这个里面却缺少了一个很重要的方法. HtmlDocument doc = new HtmlDoc ...

  3. 以太网客户端提示windows系统自带共享代理解决方法

    以太网客户端(Dr.COM)登陆出现windows系统自带共享代理,如下图: 系统win+R调出运行: 在服务中,找到Internet Connection Sharing (ICS): 右键属性,将 ...

  4. iOS开发- 三步快速集成社交化分享工具ShareSDK

    1.前言 作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的. 最近因为公司App有社交化分享的需要,就特此研究了会,拿出来与大家分享. 想要集成社交会分享,我们可以使 ...

  5. iOS- 三步快速集成社交化分享工具ShareSDK

    http://www.cnblogs.com/qingche/p/3727559.html 1.前言 作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的. 最近因为公司 ...

  6. WeCenter 社交化问答社区程序 | WeCenter 是一款知识型的社交化问答社区程序,专注于社区内容的整理、归类、检索和再发行

    WeCenter 社交化问答社区程序 | WeCenter 是一款知识型的社交化问答社区程序,专注于社区内容的整理.归类.检索和再发行 为什么选择 WeCenter 程序? 让您的社区更智能地运作,强 ...

  7. Apache shiro集群实现 (七)分布式集群系统下---cache共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  8. 浅谈iOS与社交化网络

    CHENYILONG Blog 社交化网络 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong  ...

  9. 纯净版xp系统在局域网共享需要密码如何解决

    纯净版xp系统在局域网共享需要密码怎么办?这是近来不少朋友都向小编反馈的问题.他们表示每次共享者更改密码后其他人都需要再重新输入密码,感觉十分的麻烦.下面是系统城小编给大家整理的一些有关XP系统局域网 ...

随机推荐

  1. WebApi Post 后台无法获取参数的解决方案

    事件回放: 之前一段时间,公司里前端用的Angularjs 发送http请求也是用的ng的组件,后台是.Net的WebApi 前端 var data = { PArgs: { PageIndex: 0 ...

  2. Unity在Android和iOS中如何调用Native API

    本文主要是对unity中如何在Android和iOS中调用Native API进行介绍. 首先unity支持在C#中调用C++ dll,这样可以在Android和iOS中提供C++接口在unity中调 ...

  3. uboot命令一览

    ? - alias for 'help' base - print or set address offset bdinfo - print Board Info structure boot - b ...

  4. linux中5条查找命令

    1 which which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果. which [文件...] 参 数: -n<文件名长度> 指定文件名长 ...

  5. Android开机启动程序

    android程序实现开机启动的原理,简单点说就是做一个广播接收器,接收到开机广播时就启动activity或service或执行其它操作.Android系统在启动的时候会发出一个开机广播,内容为ACT ...

  6. Linux初学:(一)Linux概述

    Linux各个目录的结构介绍 Linux系统以目录的方式来组织和管理系统中的所有文件.Linux系统通过目录将系统中的所有的文件分级.分层组织在一起,形成了Linux文件系统的树形结构层次.以根目录“ ...

  7. FeWeb基础之HTML

    FeWeb基础之HTML 1.HTML简介 HTML是一种超文本标记语言,它的文件扩展名为.html,它的所有部分都是由标记<...>和标记</...>包括起来. 在一个HTM ...

  8. 理解 OpenStack 高可用(HA)(1):OpenStack 高可用和灾备方案 [OpenStack HA and DR]

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  9. 前端构建工具gulp使用

    前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ...

  10. c++学习之容器细枝末节(2)

    从昨天到现在,还依然停留在容器的学习上,现在写例程代码顺手多了,看来写代码还是要多多练习才能有感觉. 经过一天的学习,有一下几点知识点让我觉得很有意义: (1)删除容器中的元素的时候,pop_fron ...