// // QXSettingViewController.m // QXLive // // Created by 启星 on 2025/5/9. // #import "QXSettingViewController.h" #import "QXSettingCell.h" #import "QXMineNetwork.h" #import "QXAlertView.h" #import "QXTimer.h" static NSInteger maxClickCount = 6; @interface QXSettingViewController () @property (nonatomic,strong)UITableView *tableView; @property (nonatomic,strong)NSDictionary *cellTypeDict; @property (nonatomic,strong)NSDictionary *valueDict; @property (nonatomic,strong)NSDictionary *controllerDict; @property (nonatomic,strong)QXAlertView *alertView; @property (nonatomic,strong)QXTimer *timer; @property (nonatomic,assign)NSInteger clickCount; @end @implementation QXSettingViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:NO animated:YES]; } -(void)setNavgationItems{ [super setNavgationItems]; self.navigationItem.title = QXText(@"设置"); } -(void)initSubViews{ NSArray *section1; if (self.haveNobility) { section1 = @[ QXText(@"隐身进入房间"), QXText(@"黑名单"), QXText(@"设置密码"), QXText(@"手机绑定"), QXText(@"关于我们"), QXText(@"版本号") ]; }else{ section1 = @[ // QXText(@"消息通知"), QXText(@"黑名单"), QXText(@"设置密码"), QXText(@"手机绑定"), QXText(@"关于我们"), QXText(@"版本号") ]; } NSArray *section2 = @[ QXText(@"切换账号"), QXText(@"实名认证"), QXText(@"账号注销"), QXText(@"退出登录"), ]; self.cellTypeDict = @{ // QXText(@"消息通知"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], // QXText(@"未成年人模式"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], QXText(@"黑名单"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], QXText(@"设置密码"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], QXText(@"手机绑定"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], QXText(@"版本号"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyDetail], QXText(@"切换账号"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], QXText(@"实名认证"):[NSNumber numberWithInteger:QXSettingCellTypeNormal], QXText(@"账号注销"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], QXText(@"退出登录"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow], QXText(@"隐身进入房间"):[NSNumber numberWithInteger:QXSettingCellTypeSwitch] }; self.controllerDict = @{ QXText(@"消息通知"):@"QXNoticeSwitchViewController", // QXText(@"未成年人模式"):@"QXChirldModeViewController", QXText(@"黑名单"):@"QXBlackListlViewController", QXText(@"设置密码"):@"QXSetPwdViewController", QXText(@"手机绑定"):@"QXBindMobileViewController", QXText(@"版本号"):@"", QXText(@"切换账号"):@"QXChangeAccountViewController", QXText(@"实名认证"):[QXGlobal shareGlobal].isRealName?@"QXRealNameFinishedViewController":@"QXRealNameViewController", QXText(@"账号注销"):@"", QXText(@"退出登录"):@"", QXText(@"关于我们"):@"QXAboutViewController" }; NSString*appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; self.valueDict = @{ // QXText(@"消息通知"):@"", QXText(@"未成年人模式"):@"", QXText(@"黑名单"):@"", QXText(@"设置密码"):@"", QXText(@"手机绑定"):@"", QXText(@"版本号"):appVersion, QXText(@"切换账号"):@"", QXText(@"实名认证"):@"", QXText(@"账号注销"):@"", QXText(@"退出登录"):@"", QXText(@"隐身进入房间"):QXGlobal.shareGlobal.loginModel.hide_status }; [self.dataArray addObject:section1]; [self.dataArray addObject:section2]; [self.view addSubview:self.tableView]; } #pragma mark - UITableViewDelegate,UITableViewDataSource -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return self.dataArray.count; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ NSArray *arr = self.dataArray[section]; return arr.count; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ QXSettingCell *cell = [QXSettingCell cellWithTableView:tableView]; NSArray *arr = self.dataArray[indexPath.section]; NSString *text = arr[indexPath.row]; NSString *value = self.valueDict[text]; cell.titleLabel.text = text; cell.detailLabel.text = value; cell.btnSwitch.selected = value.intValue==1; [cell.btnSwitch addTarget:self action:@selector(setHideJoinRoom:) forControlEvents:(UIControlEventTouchUpInside)]; cell.cellType = [self.cellTypeDict[text] integerValue]; cell.needLine = (indexPath.row>=0) && (indexPath.row < arr.count-1); return cell; } -(void)setHideJoinRoom:(UIButton *)sender{ sender.selected = !sender.selected; __block NSString *status = QXGlobal.shareGlobal.loginModel.hide_status; if ([status isEqualToString:@"0"]) { status = @"1"; }else{ status = @"0"; } [QXMineNetwork getNobilityPriceWithHideStatus:status successBlock:^(NSDictionary * _Nonnull dict) { QXGlobal.shareGlobal.loginModel.hide_status = status; } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { }]; } -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ return [UIView new]; } -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 12; } -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ return [UIView new]; } -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return 0.01; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; NSArray *arr = self.dataArray[indexPath.section]; NSString *text = arr[indexPath.row]; if ([text isEqualToString:QXText(@"版本号")]) { self.clickCount++; if (self.clickCount>=maxClickCount) { showToast(@"已获取充值权限"); [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kIsOpenRecharge]; [[NSUserDefaults standardUserDefaults] synchronize]; } }else{ self.clickCount = 0; } if ([text isEqualToString:QXText(@"账号注销")]) { [[QXGlobal shareGlobal] showView:self.alertView controller:self popType:(PopViewTypeTopToCenter) tapDismiss:NO finishBlock:^{ }]; return; } if ([text isEqualToString:QXText(@"退出登录")]) { if (self.logOutBlock) { self.logOutBlock(NO); } [self.navigationController popViewControllerAnimated:YES]; return; } NSString *controller = self.controllerDict[text]; if (controller.length == 0) { return; } UIViewController *vc = [[NSClassFromString(controller) alloc] init]; [self.navigationController pushViewController:vc animated:YES]; } -(UITableView *)tableView{ if (!_tableView) { _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, SCREEN_HEIGHT-NavContentHeight) style:(UITableViewStyleGrouped)]; _tableView.dataSource = self; _tableView.delegate = self; _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; _tableView.backgroundColor = [UIColor clearColor]; _tableView.rowHeight = 42; } return _tableView; } -(QXAlertView *)alertView{ if (!_alertView) { _alertView = [[QXAlertView alloc] initWithFrame:CGRectMake(0, 0, ScaleWidth(300), ScaleWidth(230))]; _alertView.title = @"您确定要注销账号吗?"; _alertView.message = @"注销后您当前的账户金币及钻石将无法找回\n30天内本账号将无法登录,请谨慎操作!"; MJWeakSelf _alertView.commitBlock = ^{ [weakSelf.navigationController popViewControllerAnimated:YES]; if (weakSelf.logOutBlock) { weakSelf.logOutBlock(YES); } }; } return _alertView; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end