IOS - 设置与帮助界面
设置与帮助
改动头像, 改动password, 移动客服, 帮助, 声明, 关于我们.
代码
//
// IndexSetting600ViewController.h
// SymptomChecker
//
// Created by wang on 2015-7-21.
//
//
#import "CYTableViewController.h"
@interface IndexSetting600ViewController : CYTableViewController
@end
//
// IndexSetting600ViewController.m
// SymptomChecker
//
// Created by wang on 2015-7-21.
//
//
#import "IndexSetting600ViewController.h"
#import "UserCenter600Item.h"
#import "UserInfoEditingItem.h" // 改动头像
#import "PortraitPickerViewController.h" // 照片视图
#import "ModifyPasswordViewController.h" // 改动password
#import "LocalPasswordViewController.h"
#import "CYWebFromLocalViewController.h" // 帮助/声明
#import "CYAboutUsViewController.h" // 关于我们
#define kViewRadio viewWidth()/320
@interface IndexSetting600ViewController () <PortraitPickerViewControllerDelegate>
@end
@implementation IndexSetting600ViewController {
UserFigureEditingItem *_figureItem; // 改动头像
PortraitPickerViewController *_portraitPickerViewController; // 改动头像视图
Setting600Item *_changeSecret; // 改动登录password
Setting600Item *_chunyuTel; // 移动客服
Setting600Item *_helpItem; // 帮助
Setting600Item *_shengMing; // 声明
Setting600Item *_aboutUs; // 关于我们
Setting600SeparateItem *_separateItem; // 空白切割cell
FilledColorButton *_logoutButton; // 注销button
UIView *_logoutFooterView;
}
- (id) initWithQuery:(NSDictionary *)query {
self = [super initWithQuery: query];
if (self) {
self.title = @"设置与帮助";
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(createModel)
name:kRegisterLocalPassword
object:nil];
}
return self;
}
- (void) dealloc {
[[NSNotificationCenter defaultCenter] removeObserver: self];
}
- (void) viewDidLoad {
[super viewDidLoad];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
[self createTableItems]; // 确保item已经创建出来
}
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear: animated];
}
//
// 创建一次仅仅需
//
- (void) createTableItems {
CY_DEFINE_SELF_BAR(self);
User* user = [User currentUser];
// 改动头像
_figureItem = [[UserFigureEditingItem alloc] initWithTitle:@"头像" value:[user.matPhoto getMediaUrl]];
[self.tableViewActions attachToObject:_figureItem
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
[_self editUserFigure];
return YES;
}];
// 改动登录password
_changeSecret = [[Setting600Item alloc] initWithTitle: @"改动登录password"];
_changeSecret.type = kSetting600Top;
[self.tableViewActions attachToObject: _changeSecret
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
ModifyPasswordViewController *controller = [ModifyPasswordViewController new];
[_self cyPresentViewController:controller
animated:YES];
return NO;
}];
// 移动客服
_chunyuTel = [[Setting600Item alloc] initWithTitle: @"移动客服"];
_chunyuTel.type = kSetting600Middle;
[self.tableViewActions attachToObject: _chunyuTel
tapBlock: ^BOOL(id object, id target, NSIndexPath *indexPath) {
NSString* feedBackPhoneNumber = @"4001100866";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat: @"tel://%@", feedBackPhoneNumber]]];
return YES;
}];
// 帮助
_helpItem = [[Setting600Item alloc] initWithTitle: @"帮助"];
_helpItem.type = kSetting600Middle;
[self.tableViewActions attachToObject: _helpItem
tapBlock: ^BOOL(id object, id target, NSIndexPath *indexPath) {
CYWebFromLocalViewController* controller = [[CYWebFromLocalViewController alloc] initWithQuery:@{@"title" : @"帮助", @"local_name" : @"help"}];
[self.navigationController pushViewController:controller animated:YES];
return YES;
}];
// 声明
_shengMing = [[Setting600Item alloc] initWithTitle: @"声明"];
_shengMing.type = kSetting600Middle;
[self.tableViewActions attachToObject:_shengMing
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
CYWebFromLocalViewController* controller = [[CYWebFromLocalViewController alloc] initWithQuery:@{@"title" : @"声明", @"local_name" : @"statement"}];
[self.navigationController pushViewController:controller animated:YES];
return YES;
}];
// 关于我们
_aboutUs = [[Setting600Item alloc] initWithTitle: @"关于我们"];
_aboutUs.type = kSetting600Bottom;
[self.tableViewActions attachToObject:_aboutUs
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
CYAboutUsViewController* controller = [[CYAboutUsViewController alloc] initWithQuery:@{@"title" : @"关于我们", @"local_name" : @"about"}];
[self.navigationController pushViewController:controller animated:YES];
return YES;
}];
// 切割
_separateItem = [[Setting600SeparateItem alloc] init];
// 底部视图
_logoutFooterView = [UIView viewWithFrame:CGRectMake(0, 0, self.view.width, 92*kViewRadio)
andBkColor:[UIColor clearColor]];
self.tableView.tableFooterView = _logoutFooterView;
// 版本号信息
UILabel *versionLabel = [UILabel labelWithFrame:CGRectMake(0, 8*kViewRadio, viewWidth(), 12*kViewRadio)
fontSize:11
fontColor:RGBCOLOR_HEX(0x522121)
text:[NSString stringWithFormat: @"当前版本号 :%@", @"1.0.0"]
];
[versionLabel setTextAlignment:NSTextAlignmentCenter];
[_logoutFooterView addSubview:versionLabel];
CGRect logoutRect = CGRectMake(16*kViewRadio,
versionLabel.bottom+16*kViewRadio,
viewWidth()-32*kViewRadio,
44*kViewRadio);
// 注销button
_logoutButton = [[FilledColorButton alloc] initWithFrame: logoutRect
color: RGBCOLOR_HEX(0xe85454)
highlightedColor: RGBCOLOR_HEX(0xa43939)
textColor: [UIColor whiteColor]
title: @"注销"
fontSize: 16*kViewRadio
isBold: YES];
[_logoutButton addTarget: self
action: @selector(onLogOutBtnpressed:)
forControlEvents: UIControlEventTouchUpInside];
[_logoutFooterView addSubview:_logoutButton];
}
- (void)editUserFigure {
_portraitPickerViewController = [[PortraitPickerViewController alloc] initWithParent:self];
_portraitPickerViewController.delegate = self;
[_portraitPickerViewController showOptions];
}
- (void) createModel {
NSArray *dataItems;
if ([User hasLoggedIn]) {
dataItems = @[_separateItem,
_figureItem, // 改动头像
_separateItem,
_changeSecret,// 改动登录password
_chunyuTel, // 移动客服
_helpItem, // 帮助
_shengMing, // 声明
_aboutUs, // 关于我们
_separateItem];
} else {
_logoutButton.hidden = YES;
_logoutFooterView.height = 40;
dataItems = @[_separateItem,
_chunyuTel, // 移动客服
_helpItem, // 帮助
_shengMing, // 声明
_aboutUs, // 关于我们
_separateItem];
}
self.tableViewModel = [[NITableViewModel alloc] initWithListArray:dataItems
delegate:self.cellFactory];
}
#pragma mark - btn-selectors
// 点击注销
- (void) onLogOutBtnpressed:(UIButton*) sender {
NIDPRINTMETHODNAME();
// 登出
[[AutoLoginManager sharedInstance] logout];
// 更新当前的界面
[self createModel];
[self backToLastController: nil];
// 让别的地方改变UI
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationUserLogout
object:nil];
// 获取未登录的badge
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationCheckBadge
object:nil];
}
@end
效果
IOS - 设置与帮助界面的更多相关文章
- iOS设置app应用程序文件共享
1.iOSapp应用程序文件共享 当我们用itnues连接到设备时,在应用程序栏目下面,文件共享下,点击 对应的程序,即可以在程序右边栏目里面看到应用程序共享的数据, 此时,我们可以通过右下角的 添加 ...
- IOS 设置定时器
IOS 设置定时器 自动滚动视图 定时发送坐标信息 即时显示 时钟 NSTimer *timer; - (void)start {//1second 调用一次 timer = [NSTimer sc ...
- iOS 设置代理过程
iOS设置代理的过程 (以模拟 button 作用为例) 1.写协议 新建一个名为 MyButton 的文件,继承于 UIView,在该文件里 声明协议 myDelegate 2.写协议方法 为声明的 ...
- iOS设置状态栏样式
iOS设置状态栏样式可以使用两种方式. 方式一: 直接在需要改变默认状态栏样式的控制器中实现一个方法(其他任何事情都不用做): // 返回状态栏的样式 - (UIStatusBarStyle)pref ...
- iOS设置拍照retake和use按钮为中文简体
iOS设置拍照retake和use按钮为中文简体,设置有两种方式一个是代码直接控制,第二就是xcode配置本机国际化为“china”(简体中文). 本文重点要说的是第二种,这样配置有两个好处,一是操作 ...
- iOS 设置View阴影
iOS 设置View投影 需要设置 颜色 阴影半径 等元素 UIView *shadowView = [[UIView alloc] init]; shadowView.frame = CGRectM ...
- iOS 设置UILabel 的内边距
iOS 设置UILabel 的内边距 - (void)drawTextInRect:(CGRect)rect { UIEdgeInsets insets = {, , , }; [super draw ...
- iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文
iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文 一:如何设置项目中文环境 targets--->Locatization native development reg ...
- iOS 设置字体样式
1.iOS设置字体样式 label.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:24]; 字体名如下: F ...
随机推荐
- Selenium学习第二天,了解Selenium工作模式与学习Selenium需要具备的知识与工具。
Selenium学习网站: 1.http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2014/0408/207237.html——好像是对API的 ...
- STM32的串口DMA收发以及双缓冲区的实现
在使用STM32的UART的DMA功能总结如下: 首先上代码,这里采用STM32 的USART1作为Demo,RX的DMA为DMA1_Channel5,TX的DMA为DMA1_Channel4.初始化 ...
- JS实现LOGO像雪花一样落下特效
<HTML><HEAD><TITLE>LOGO从上落下</TITLE> <SCRIPT language=JavaScript> //窗口改 ...
- Mybatis逆向工程使用方法
使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件. 一.mapper生成配置文件 在generatorConfig.xm ...
- API Studio 5.1.2 版本更新:加入全局搜索、支持批量测试API测试用例、读取代码注解生成文档支持Github与码云等
最近在EOLINKER的开发任务繁重,许久在博客园没有更新产品动态了,经过这些日子,EOLINKER又有了长足的进步,增加了更多易用的功能,比如加入全局搜索.支持批量测试API测试用例.读取代码注解生 ...
- radial profiles of mean streamwise velocity at X/D=3
matlab code: load aver_ux_array.dat; load z_array.dat; r=z_array(:,); r=r.' r_j=0.00125; r_nor=r/d; ...
- 洛谷 2824 [HEOI2016/TJOI2016]排序
[题意概述] 对一个1到n的排列做m次区间排序,最后询问位置q上面的数. [题解] 区间排序的效率是nlogn,所以暴力做的话效率是mnlogn,显然达不到要求. 我们考虑二分答案.如果某个位置的数比 ...
- java Beanutils.copyProperties( )用法
这是一篇开发自辩甩锅稿~~~~ 昨天测试小姐姐将我的一个bug单重开了,emmmm....内心OS:就调整下对象某个属性类型这么简单的操作,我怎么可能会出错呢,一定不是我的锅!!but再怎么抗拒,bu ...
- nginx+keepalived+consul 实现高可用集群
继 负载均衡 之 nginx+consul+consul template,我这次将使用2台虚拟机,来做一个简单的双机负载均衡试验. 试验目标: 1. 当参加负载均衡的子节点服务,有任何其中一个或多个 ...
- 【02】json语法
[02] JSON 语法是 JavaScript 语法的子集. JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 ...