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
效果
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- ios中图像进行压缩方法汇总
- IOS检测指定路径的文件是否存在
- iOS、Mac OS X系统中编程实现汉字转拼音的方法(超级简单)