您的位置:首页 > 移动开发 > IOS开发

IOS - 个人中心界面

2015-07-21 10:25 429 查看
个人中心界面:

用户信息, 服务历史, 会员中心, 设置与帮助, 意见反馈.

代码

//
//  IndexUserCenter600ViewController.h
//  SymptomChecker
//
//  Created by Wang on 2015-7-21.
//
//

#import "CYTableViewController.h"

@interface IndexUserCenter600ViewController : CYTableViewController

- (void)setLoginStatus;

@end


//
//  IndexUserCenter600ViewController.m
//  SymptomChecker
//
//  Created by Wang on 2015-7-21.
//
//

#import "IndexUserCenter600ViewController.h"
#import "UserCenter600Item.h"

#import "MATUserInfoViewInSettingView.h"
#import "UserInfoViewInSettingView.h"

#import "IndexTelHistoryViewController.h" // 服务历史
#import "MATMemberCenterViewController.h" // 会员中心页面
#import "IndexSetting600ViewController.h" // 设置与帮助
#import "FeedbackDetailViewController.h" // 意见反馈

#define kViewRadio viewWidth()/320

@interface IndexUserCenter600ViewController ()

@end

@implementation IndexUserCenter600ViewController {

MATUserInfoViewInSettingView *_mUserHeaderView; // 默认用户信息
UserInfoViewInSettingView *_dUserHeaderView; // 用户信息

UserCenter600Item *_serviceHistoryItem;     // 服务历史
UserCenter600Item *_vipDetailItem;          // 会员中心
UserCenter600Item *_settingsItem;           // 设置与帮助
UserCenter600Item *_adviceItem;             // 意见反馈

BOOL _isLogin; // 是否登录
}

- (id) initWithQuery:(NSDictionary *)query {
self = [super initWithQuery: query];
if (self) {

self.title = @"我的账号";

// 隐藏底部信息
self.hidesBottomBarWhenPushed = NO;

[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(userInfoChanged)
name: kUserLoginSucceed
object: nil];

[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(logout)
name: kNotificationUserLogout
object: nil];

[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(onVIPMemberStatusChanged)
name: kNotificationVIPInfoChanged
object: nil];

[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(userInfoChanged)
name: kNotificationNickNameChanged
object: nil];

[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(userInfoChanged)
name: kNotificationPortraitChanged
object: nil];
}
return self;
}

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void) viewDidLoad {
[super viewDidLoad];
[self createTableItems];
[self.view setBackgroundColor:[UIColor whiteColor]];
[self.tableView setBackgroundColor:[UIColor clearColor]];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}

// 切换Tab调用的函数
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear: animated];
[self setLoginStatus];
}

// 创建Model
- (void) createModel {
[self setLoginStatus];
}

//
// 创建用到的item
//
- (void) createTableItems {
NIDPRINTMETHODNAME();

WEAK_VAR(self);

CGRect headerRect = CGRectMake(0, 0, viewWidth(), 192*kViewRadio);
// 用户信息
_mUserHeaderView = [[MATUserInfoViewInSettingView alloc] initWithFrame:headerRect];
[self.tableView setTableHeaderView:_mUserHeaderView];

// 服务历史
_serviceHistoryItem = [[UserCenter600Item alloc] initWithIcon:@"service_his_600.png"
name:@"服务历史"];
[self.tableViewActions attachToObject: _serviceHistoryItem
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
// 服务历史页面
IndexTelHistoryViewController *controller =
[[IndexTelHistoryViewController alloc] initWithNavigatorURL:nil
query:nil];
[_self navigateToController:controller];
return NO;
}];

// 会员中心
_vipDetailItem = [[UserCenter600Item alloc] initWithIcon:@"main_menu_account_icon.png"
name:@"会员中心"];
[self.tableViewActions attachToObject: _vipDetailItem
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
// 会员中心页面
MATMemberCenterViewController* controller =
[[MATMemberCenterViewController alloc] initWithNavigatorURL:nil
query:@{@"source":@"vip"}];
[_self navigateToController:controller];
return NO;
}];

// 设置与帮助
_settingsItem = [[UserCenter600Item alloc] initWithIcon: @"setting_600.png"
name: @"设置与帮助"];
[self.tableViewActions attachToObject: _settingsItem
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
// 设置与帮助页面
IndexSetting600ViewController *controller =
[[IndexSetting600ViewController alloc] initWithQuery: nil];
[_self navigateToController:controller];
return NO;
}];

// 意见反馈
_adviceItem = [[UserCenter600Item alloc] initWithIcon: @"suggest_600.png"
name: @"意见反馈"];
[self.tableViewActions attachToObject: _adviceItem
tapBlock:^BOOL(id object, id target, NSIndexPath *indexPath) {
//  直接进入建议详情
FeedbackDetailViewController* controller =
[[FeedbackDetailViewController alloc] initWithNavigatorURL:nil query:nil];
[_self navigateToController:controller];
return NO;
}];
}

- (void)navigateToController:(CYViewController *)controller {
[[SymptomCheckerAppDelegate appDelegate].topViewController.navigationController pushViewController:controller
animated:NO];
}

//
// 根据用户的登录状态,来设置UI
//
- (void)setLoginStatus {

NIDPRINTMETHODNAME();

NSArray *tableItems;

if ([User hasLoggedIn]) {
CGRect headerRect = CGRectMake(0, 0, viewWidth(), 192*kViewRadio);
_dUserHeaderView = [[UserInfoViewInSettingView alloc] initWithFrame:headerRect];
[self.tableView setTableHeaderView:_dUserHeaderView];
[_dUserHeaderView logOut];
[_dUserHeaderView updateData];

// 已登录
tableItems = [@[_serviceHistoryItem,
_vipDetailItem,
_settingsItem,
_adviceItem] mutableCopy];
} else {
CGRect headerRect = CGRectMake(0, 0, viewWidth(), 192*kViewRadio);
_mUserHeaderView = [[MATUserInfoViewInSettingView alloc] initWithFrame:headerRect];
[self.tableView setTableHeaderView:_mUserHeaderView];

// 未登录
tableItems = @[_settingsItem,
_adviceItem];
}

self.tableViewModel = [[NITableViewModel alloc] initWithListArray:tableItems
delegate:self.cellFactory];

}

#pragma mark NotificationSelector

// 登出操作已经在setting界面完成,这里只需要更新UI
- (void) logout {
// 更新当前的界面
[self setLoginStatus];

}

- (void) onVIPMemberStatusChanged {
NIDPRINTMETHODNAME();
[self setLoginStatus];
}

//
// 用户信息改变,包括用户金币,头像,昵称,任务数
//
- (void) userInfoChanged {
NIDPRINTMETHODNAME();
[self setLoginStatus];
}

#pragma mark - AKTabBarController的相关配置

- (NSString *)tabImageName {
return @"btn_user_center_normal.png";
}
- (NSString *)tabImageNameSel {
return @"btn_user_center_selected.png";
}
- (NSString *)tabTitle {
return @"个人中心";
}

@end


效果



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Mystra IOS 个人中心