iOS开发点滴-ShareSDK(iOS版)开发实践:自定义授权视图和分享视图导航栏
来源:互联网 发布:淘宝手机端详情页宽度 编辑:程序博客网 时间:2024/06/10 15:50
最近很多人问ShareSDK的授权视图和分享视图的导航栏样式与应用风格不一致,能否修改导航栏的样式?那么这里我就2.6.1版本进行说明(还在使用1.x版本的朋友建议升级到2.x版本,在新版本中可定制的东西比旧版本更多更灵活哦)。
其实要修改导航栏需要在分享接口(showShareActionSheet或者showShareView)中指定authOptions的viewDelegate和shareOptions中的shareViewDelegate参数。其中authOptions是授权相关的设置,而shareOptions则是分享相关的设置。那么这两个对象都可以通过ShareSDK相关方法进行初始化,如下面代码所示:
1
id<ISSAuthOptions> authOptions = [ShareSDK authOptionsWithAutoAuth:YES
2
allowCallback:NO
3
authViewStyle:SSAuthViewStyleFullScreenPopup
4
viewDelegate:self
5
authManagerViewDelegate:self];
1
id<ISSShareOptions> shareOptions = [ShareSDK defaultShareOptionsWithTitle:@
"内容分享"
2
oneKeyShareList:[NSArray defaultOneKeyShareList]
3
qqButtonHidden:YES
4
wxSessionButtonHidden:YES
5
wxTimelineButtonHidden:YES
6
showKeyboardOnAppear:NO
7
shareViewDelegate:self
8
friendsViewDelegate:self
9
picViewerViewDelegate:nil];
那么对于需要修改导航栏样式来说,只要实现ISSViewDelegate的viewOnWillDisplay方法即可,也就是说在视图将要显示的时候来调整导航样式。我们可以在要显示分享视图的ViewController中实现ISSViewDelegate协议(注:如果分享界面也要调整样式,那么只要实现ISSShareViewDelegate即可)。我们这里要显示分享界面的是DemoViewController,那么在DemoViewController.h中修改代码如下:
1
@interface DemoViewController : UIViewController <ISSShareViewDelegate>
1
- (
void
)viewOnWillDisplay:(UIViewController *)viewController shareType:(ShareType)shareType
2
{
3
[viewController.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@
"iPhoneNavigationBarBG.png"
]];
4
}
委托方法实现后,然后传入到authOptions和shareOptions中(如最上面的代码所示),然后把authOptions和shareOptions传入分享接口即可。代码如下所示:
01
//弹出分享菜单
02
[ShareSDK showShareActionSheet:nil
03
shareList:nil
04
content:publishContent
05
statusBarTips:YES
06
authOptions:authOptions
07
shareOptions:shareOptions
08
result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error,
BOOL
end) {
09
if
(state == SSPublishContentStateSuccess) {
10
NSLog(@
"分享成功"
);
11
}
12
else
if
(state == SSPublishContentStateFail) {
13
NSLog(@
"分享失败,错误码:%d,错误描述:%@"
, [error errorCode], [error errorDescription]);
14
}
15
}];
最佳实践:对于应用中如果多个地方有使用ShareSDK,那么可以创建一个独立的委托对象,专门针对样式作调整的,那么这样只要声明为全局的对象,就可以到处引用了。可以参考demo中的AGViewDelegate对象。
原文地址:http://my.oschina.net/vimfung/blog/148992
- iOS开发点滴-ShareSDK(iOS版)开发实践:自定义授权视图和分享视图导航栏
- IOS开发 - 04.自定义视图
- iOS开发 UI 自定义视图
- IOS开发-表视图LV3导航控制器
- IOS开发之视图和视图控制器
- 窗口,视图,视图控制器和UIKit基础-IOS开发
- iOS开发之自定义ActionSheet视图
- 【IOS学习】IOS开发之视图和视图控制器
- iOS开发之UITableView自定义Header视图和自定义Footer视图
- iOS开发-模式视图
- ios开发配置视图
- iOS开发:视图生命周期
- 自定义视图,在UIView基础上增加--iOS开发
- ios开发---自定义导航栏
- iOS开发- ShareSDK分享和第三方登录
- iOS开发系列课程(05) --- 导航视图控制器
- IOS开发学习笔记(导航控制器,视图控制器,模态)
- iOS开发之窗口和视图
- [LeetCode40]Combinations Sum II
- C# 中的回车换行符
- Xsolla带你走进印度移动游戏市场
- 问题解决 apache: you dont have permission to access
- 问题解决: You don't have permission to access /phpmyadmin/main.php on this server.
- iOS开发点滴-ShareSDK(iOS版)开发实践:自定义授权视图和分享视图导航栏
- Java读取文件方法
- RHS2.1的安装
- Twitter 访问接口(Python)
- oracle11g学习笔记--Oracle事务讲解
- 易其至矣章
- 易廣矣大矣章
- Linked List 总结
- 一陰一陽章