修复 Swift 方法重载冲突
问题: - refreshTabBar(isLogin:) 和 refreshTabBarWithIsLogin(_:) - 在 OC 中生成相同的 selector 'refreshTabBarWithIsLogin:' - 导致编译冲突 修复: - 移除 refreshTabBar(isLogin:) 的 @objc 标记 - 保留 refreshTabBarWithIsLogin(_:) 的 @objc 标记 - 内部调用改为 Swift 方法 这样 OC 只能看到 refreshTabBarWithIsLogin: 方法 Swift 内部可以使用更简洁的 refreshTabBar(isLogin:) 方法
This commit is contained in:
@@ -418,13 +418,13 @@
|
||||
23FF42762AA6E1480055733C /* XPHomeRecommendOtherRoomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42752AA6E1480055733C /* XPHomeRecommendOtherRoomView.m */; };
|
||||
23FF42792AA6E19C0055733C /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */; };
|
||||
23FF428E2AAB2D3A0055733C /* XPCandyTreeBuyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */; };
|
||||
4C06427F2E97BD6D00BAF413 /* NewMineHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642732E97BD6D00BAF413 /* NewMineHeaderView.m */; };
|
||||
4C0642802E97BD6D00BAF413 /* NewMomentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C06427A2E97BD6D00BAF413 /* NewMomentCell.m */; };
|
||||
4C0642812E97BD6D00BAF413 /* NewMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642702E97BD6D00BAF413 /* NewMineViewController.m */; };
|
||||
4C0642822E97BD6D00BAF413 /* NewTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C06427D2E97BD6D00BAF413 /* NewTabBarController.swift */; };
|
||||
4C0642832E97BD6D00BAF413 /* NewMomentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642772E97BD6D00BAF413 /* NewMomentViewController.m */; };
|
||||
4C06427F2E97BD6D00BAF413 /* EPMineHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642732E97BD6D00BAF413 /* EPMineHeaderView.m */; };
|
||||
4C0642802E97BD6D00BAF413 /* EPMomentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C06427A2E97BD6D00BAF413 /* EPMomentCell.m */; };
|
||||
4C0642852E97BD9500BAF413 /* APIConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642842E97BD9500BAF413 /* APIConfig.swift */; };
|
||||
4C0642882E97BDA300BAF413 /* GlobalEventManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642872E97BDA300BAF413 /* GlobalEventManager.m */; };
|
||||
4C06428B2E98DC5F00BAF413 /* EPTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C06428A2E98DC5F00BAF413 /* EPTabBarController.swift */; };
|
||||
4C06428E2E98DC7E00BAF413 /* EPMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C06428D2E98DC7E00BAF413 /* EPMineViewController.m */; };
|
||||
4C0642912E98DC8700BAF413 /* EPMomentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642902E98DC8700BAF413 /* EPMomentViewController.m */; };
|
||||
4C0A5B842E02675300955219 /* MedalsCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A5B832E02675300955219 /* MedalsCollectionViewCell.m */; };
|
||||
4C0A5B872E02BB1100955219 /* MedalsLevelIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A5B862E02BB1100955219 /* MedalsLevelIndicatorView.m */; };
|
||||
4C0A5B8A2E02BC3900955219 /* MedalsDetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A5B892E02BC3900955219 /* MedalsDetailView.m */; };
|
||||
@@ -2462,19 +2462,19 @@
|
||||
23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeMenuSourceModel.m; sourceTree = "<group>"; };
|
||||
23FF428C2AAB2D3A0055733C /* XPCandyTreeBuyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPCandyTreeBuyView.h; sourceTree = "<group>"; };
|
||||
23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeBuyView.m; sourceTree = "<group>"; };
|
||||
4C06426F2E97BD6D00BAF413 /* NewMineViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMineViewController.h; sourceTree = "<group>"; };
|
||||
4C0642702E97BD6D00BAF413 /* NewMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMineViewController.m; sourceTree = "<group>"; };
|
||||
4C0642722E97BD6D00BAF413 /* NewMineHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMineHeaderView.h; sourceTree = "<group>"; };
|
||||
4C0642732E97BD6D00BAF413 /* NewMineHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMineHeaderView.m; sourceTree = "<group>"; };
|
||||
4C0642762E97BD6D00BAF413 /* NewMomentViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMomentViewController.h; sourceTree = "<group>"; };
|
||||
4C0642772E97BD6D00BAF413 /* NewMomentViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMomentViewController.m; sourceTree = "<group>"; };
|
||||
4C0642792E97BD6D00BAF413 /* NewMomentCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMomentCell.h; sourceTree = "<group>"; };
|
||||
4C06427A2E97BD6D00BAF413 /* NewMomentCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMomentCell.m; sourceTree = "<group>"; };
|
||||
4C06427D2E97BD6D00BAF413 /* NewTabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewTabBarController.swift; sourceTree = "<group>"; };
|
||||
4C0642722E97BD6D00BAF413 /* EPMineHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EPMineHeaderView.h; sourceTree = "<group>"; };
|
||||
4C0642732E97BD6D00BAF413 /* EPMineHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EPMineHeaderView.m; sourceTree = "<group>"; };
|
||||
4C0642792E97BD6D00BAF413 /* EPMomentCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EPMomentCell.h; sourceTree = "<group>"; };
|
||||
4C06427A2E97BD6D00BAF413 /* EPMomentCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EPMomentCell.m; sourceTree = "<group>"; };
|
||||
4C0642842E97BD9500BAF413 /* APIConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIConfig.swift; sourceTree = "<group>"; };
|
||||
4C0642862E97BDA300BAF413 /* GlobalEventManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GlobalEventManager.h; sourceTree = "<group>"; };
|
||||
4C0642872E97BDA300BAF413 /* GlobalEventManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GlobalEventManager.m; sourceTree = "<group>"; };
|
||||
4C0642892E97BDC900BAF413 /* YuMi-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YuMi-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
4C06428A2E98DC5F00BAF413 /* EPTabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPTabBarController.swift; sourceTree = "<group>"; };
|
||||
4C06428C2E98DC7E00BAF413 /* EPMineViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EPMineViewController.h; sourceTree = "<group>"; };
|
||||
4C06428D2E98DC7E00BAF413 /* EPMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EPMineViewController.m; sourceTree = "<group>"; };
|
||||
4C06428F2E98DC8700BAF413 /* EPMomentViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EPMomentViewController.h; sourceTree = "<group>"; };
|
||||
4C0642902E98DC8700BAF413 /* EPMomentViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EPMomentViewController.m; sourceTree = "<group>"; };
|
||||
4C0A5B822E02675300955219 /* MedalsCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MedalsCollectionViewCell.h; sourceTree = "<group>"; };
|
||||
4C0A5B832E02675300955219 /* MedalsCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MedalsCollectionViewCell.m; sourceTree = "<group>"; };
|
||||
4C0A5B852E02BB1100955219 /* MedalsLevelIndicatorView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MedalsLevelIndicatorView.h; sourceTree = "<group>"; };
|
||||
@@ -6498,8 +6498,8 @@
|
||||
4C0642712E97BD6D00BAF413 /* Controllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4C06426F2E97BD6D00BAF413 /* NewMineViewController.h */,
|
||||
4C0642702E97BD6D00BAF413 /* NewMineViewController.m */,
|
||||
4C06428C2E98DC7E00BAF413 /* EPMineViewController.h */,
|
||||
4C06428D2E98DC7E00BAF413 /* EPMineViewController.m */,
|
||||
);
|
||||
path = Controllers;
|
||||
sourceTree = "<group>";
|
||||
@@ -6507,8 +6507,8 @@
|
||||
4C0642742E97BD6D00BAF413 /* Views */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4C0642722E97BD6D00BAF413 /* NewMineHeaderView.h */,
|
||||
4C0642732E97BD6D00BAF413 /* NewMineHeaderView.m */,
|
||||
4C0642722E97BD6D00BAF413 /* EPMineHeaderView.h */,
|
||||
4C0642732E97BD6D00BAF413 /* EPMineHeaderView.m */,
|
||||
);
|
||||
path = Views;
|
||||
sourceTree = "<group>";
|
||||
@@ -6525,8 +6525,8 @@
|
||||
4C0642782E97BD6D00BAF413 /* Controllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4C0642762E97BD6D00BAF413 /* NewMomentViewController.h */,
|
||||
4C0642772E97BD6D00BAF413 /* NewMomentViewController.m */,
|
||||
4C06428F2E98DC8700BAF413 /* EPMomentViewController.h */,
|
||||
4C0642902E98DC8700BAF413 /* EPMomentViewController.m */,
|
||||
);
|
||||
path = Controllers;
|
||||
sourceTree = "<group>";
|
||||
@@ -6534,8 +6534,8 @@
|
||||
4C06427B2E97BD6D00BAF413 /* Views */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4C0642792E97BD6D00BAF413 /* NewMomentCell.h */,
|
||||
4C06427A2E97BD6D00BAF413 /* NewMomentCell.m */,
|
||||
4C0642792E97BD6D00BAF413 /* EPMomentCell.h */,
|
||||
4C06427A2E97BD6D00BAF413 /* EPMomentCell.m */,
|
||||
);
|
||||
path = Views;
|
||||
sourceTree = "<group>";
|
||||
@@ -6552,7 +6552,7 @@
|
||||
4C06427E2E97BD6D00BAF413 /* NewTabBar */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4C06427D2E97BD6D00BAF413 /* NewTabBarController.swift */,
|
||||
4C06428A2E98DC5F00BAF413 /* EPTabBarController.swift */,
|
||||
);
|
||||
path = NewTabBar;
|
||||
sourceTree = "<group>";
|
||||
@@ -11971,6 +11971,7 @@
|
||||
E8F63CB4298B563D00B338BA /* Api+SayHello.m in Sources */,
|
||||
E81E09C9290F71BF00A1F410 /* XPAdvertiseView.m in Sources */,
|
||||
4CD15D912D7E902800D9279F /* LoginViewController.m in Sources */,
|
||||
4C06428B2E98DC5F00BAF413 /* EPTabBarController.swift in Sources */,
|
||||
2305F3412AD94D5200AD403C /* XPMaskManagerVC.m in Sources */,
|
||||
4CFFEFD02D3A5E130035D016 /* Api+SuperAdmin.m in Sources */,
|
||||
9BC5C91F277C902B007C8719 /* XPReleaseRadioView.m in Sources */,
|
||||
@@ -12234,6 +12235,7 @@
|
||||
23FF426D2AA5E4EE0055733C /* XPNewHomePartyAudioView.m in Sources */,
|
||||
E81060E82987720F00B772F0 /* MessageUnSupportModel.m in Sources */,
|
||||
E8D34D6028082BA5009C4835 /* XPMineUserDataPresenter.m in Sources */,
|
||||
4C06428E2E98DC7E00BAF413 /* EPMineViewController.m in Sources */,
|
||||
E84CBCE4284372D800D43221 /* XPRoomHalfMessageView.m in Sources */,
|
||||
E8EEB8F226FC2050007C6EBA /* SDPhotoBrowser.m in Sources */,
|
||||
23CEFC4F2AFB8FC100576D89 /* BSSDLayoutUtil.m in Sources */,
|
||||
@@ -12347,6 +12349,7 @@
|
||||
233423C72AAEE5C600B1253F /* XPCandyTreeBuySuccessView.m in Sources */,
|
||||
E873EB0F28098D500071030D /* MessageContentGiftView.m in Sources */,
|
||||
2331C1702A5EB71000E1D940 /* XPNoblePrivilegeContentCell.m in Sources */,
|
||||
4C0642912E98DC8700BAF413 /* EPMomentViewController.m in Sources */,
|
||||
E8D34D4D28080351009C4835 /* XPMineDataClanTableViewCell.m in Sources */,
|
||||
E85E7B292A4EB0D300B6D00A /* XPGuildTimePickView.m in Sources */,
|
||||
E85E7BBF2A4EE7AC00B6D00A /* XPMinePersonalCenterCell.m in Sources */,
|
||||
@@ -12798,11 +12801,8 @@
|
||||
E81060F42987C6B200B772F0 /* MessageOpenLiveModel.m in Sources */,
|
||||
E8AEAEF027141C430017FCE0 /* XPRoomMenuContainerView.m in Sources */,
|
||||
9B85F3532806AB9A006EDF51 /* XPAnchorPKResultView.m in Sources */,
|
||||
4C06427F2E97BD6D00BAF413 /* NewMineHeaderView.m in Sources */,
|
||||
4C0642802E97BD6D00BAF413 /* NewMomentCell.m in Sources */,
|
||||
4C0642812E97BD6D00BAF413 /* NewMineViewController.m in Sources */,
|
||||
4C0642822E97BD6D00BAF413 /* NewTabBarController.swift in Sources */,
|
||||
4C0642832E97BD6D00BAF413 /* NewMomentViewController.m in Sources */,
|
||||
4C06427F2E97BD6D00BAF413 /* EPMineHeaderView.m in Sources */,
|
||||
4C0642802E97BD6D00BAF413 /* EPMomentCell.m in Sources */,
|
||||
E8DEC99527648FA50078CB70 /* ClientConfig.m in Sources */,
|
||||
9B6E8577281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m in Sources */,
|
||||
4CFE7F422E45ECEC00F77776 /* PublicRoomManager.m in Sources */,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// NewMineViewController.h
|
||||
// EPMineViewController.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by AI on 2025-10-09.
|
||||
|
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// NewMineViewController.m
|
||||
// EPMineViewController.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by AI on 2025-10-09.
|
||||
@@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
#import "EPMineViewController.h"
|
||||
#import "NewMineHeaderView.h"
|
||||
#import "EPMineHeaderView.h"
|
||||
#import <Masonry/Masonry.h>
|
||||
#import "Api+Mine.h"
|
||||
#import "AccountInfoStorage.h"
|
||||
@@ -16,7 +16,7 @@
|
||||
#import <MJExtension/MJExtension.h>
|
||||
#import "XPSkillCardPlayerManager.h"
|
||||
|
||||
@interface NewMineViewController () <UITableViewDelegate, UITableViewDataSource>
|
||||
@interface EPMineViewController () <UITableViewDelegate, UITableViewDataSource>
|
||||
|
||||
// MARK: - UI Components
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
@property (nonatomic, strong) UITableView *tableView;
|
||||
|
||||
/// 顶部个人信息卡片
|
||||
@property (nonatomic, strong) NewMineHeaderView *headerView;
|
||||
@property (nonatomic, strong) EPMineHeaderView *headerView;
|
||||
|
||||
/// 设置按钮
|
||||
@property (nonatomic, strong) UIButton *settingsButton;
|
||||
@@ -56,7 +56,7 @@
|
||||
[self setupUI];
|
||||
[self loadData];
|
||||
|
||||
NSLog(@"[NewMineViewController] 页面加载完成");
|
||||
NSLog(@"[EPMineViewController] 页面加载完成");
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
@@ -89,7 +89,7 @@
|
||||
// 设置头部视图
|
||||
self.tableView.tableHeaderView = self.headerView;
|
||||
|
||||
NSLog(@"[NewMineViewController] UI 设置完成");
|
||||
NSLog(@"[EPMineViewController] UI 设置完成");
|
||||
}
|
||||
|
||||
// MARK: - Data Loading
|
||||
@@ -113,7 +113,7 @@
|
||||
- (void)refreshUserInfo {
|
||||
NSString *uid = [[AccountInfoStorage instance] getUid];
|
||||
if (!uid.length) {
|
||||
NSLog(@"[NewMineViewController] 未登录,无法获取用户信息");
|
||||
NSLog(@"[EPMineViewController] 未登录,无法获取用户信息");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -134,9 +134,9 @@
|
||||
};
|
||||
|
||||
[self.headerView configureWithUserInfo:userInfoDict];
|
||||
NSLog(@"[NewMineViewController] 用户信息加载成功: %@", self.userInfo.nick);
|
||||
NSLog(@"[EPMineViewController] 用户信息加载成功: %@", self.userInfo.nick);
|
||||
} else {
|
||||
NSLog(@"[NewMineViewController] 用户信息加载失败: %@", msg);
|
||||
NSLog(@"[EPMineViewController] 用户信息加载失败: %@", msg);
|
||||
}
|
||||
} uid:uid];
|
||||
|
||||
@@ -156,18 +156,18 @@
|
||||
// [Api getUserWalletInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
||||
// if (code == 200 && data.data) {
|
||||
// self.walletInfo = [WalletInfoModel mj_objectWithKeyValues:data.data];
|
||||
// NSLog(@"[NewMineViewController] 钱包信息加载成功: 钻石=%ld 金币=%ld",
|
||||
// NSLog(@"[EPMineViewController] 钱包信息加载成功: 钻石=%ld 金币=%ld",
|
||||
// (long)self.walletInfo.diamond, (long)self.walletInfo.money);
|
||||
// }
|
||||
// } fail:^(NSInteger code, NSString * _Nullable msg) {
|
||||
// NSLog(@"[NewMineViewController] 钱包信息加载失败: %@", msg);
|
||||
// NSLog(@"[EPMineViewController] 钱包信息加载失败: %@", msg);
|
||||
// } uid:uid ticket:ticket];
|
||||
}
|
||||
|
||||
// MARK: - Actions
|
||||
|
||||
- (void)onSettingsButtonTapped {
|
||||
NSLog(@"[NewMineViewController] 设置按钮点击");
|
||||
NSLog(@"[EPMineViewController] 设置按钮点击");
|
||||
// TODO: 跳转到设置页面
|
||||
[self showAlertWithMessage:@"设置功能开发中"];
|
||||
}
|
||||
@@ -176,7 +176,7 @@
|
||||
NSString *type = item[@"type"];
|
||||
NSString *title = item[@"title"];
|
||||
|
||||
NSLog(@"[NewMineViewController] 菜单项点击: %@", type);
|
||||
NSLog(@"[EPMineViewController] 菜单项点击: %@", type);
|
||||
|
||||
if ([type isEqualToString:@"wallet"]) {
|
||||
// TODO: 跳转到钱包页面
|
||||
@@ -274,9 +274,9 @@
|
||||
return _tableView;
|
||||
}
|
||||
|
||||
- (NewMineHeaderView *)headerView {
|
||||
- (EPMineHeaderView *)headerView {
|
||||
if (!_headerView) {
|
||||
_headerView = [[NewMineHeaderView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 280)];
|
||||
_headerView = [[EPMineHeaderView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 280)];
|
||||
}
|
||||
return _headerView;
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/// 新的个人中心头部视图
|
||||
/// 纵向卡片式设计 + 渐变背景
|
||||
@interface NewMineHeaderView : UIView
|
||||
@interface EPMineHeaderView : UIView
|
||||
|
||||
/// 配置用户信息
|
||||
/// @param userInfo 用户信息字典
|
@@ -6,10 +6,10 @@
|
||||
// Copyright © 2025 YuMi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NewMineHeaderView.h"
|
||||
#import "EPMineHeaderView.h"
|
||||
#import <Masonry/Masonry.h>
|
||||
|
||||
@interface NewMineHeaderView ()
|
||||
@interface EPMineHeaderView ()
|
||||
|
||||
// MARK: - UI Components
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
@end
|
||||
|
||||
@implementation NewMineHeaderView
|
||||
@implementation EPMineHeaderView
|
||||
|
||||
// MARK: - Lifecycle
|
||||
|
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// NewMomentViewController.h
|
||||
// EPMomentViewController.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by AI on 2025-10-09.
|
||||
|
@@ -7,14 +7,14 @@
|
||||
//
|
||||
|
||||
#import "EPMomentViewController.h"
|
||||
#import "NewMomentCell.h"
|
||||
#import "EPMomentCell.h"
|
||||
#import <Masonry/Masonry.h>
|
||||
#import "Api+Moments.h"
|
||||
#import "AccountInfoStorage.h"
|
||||
#import "MomentsInfoModel.h"
|
||||
#import <MJExtension/MJExtension.h>
|
||||
|
||||
@interface NewMomentViewController () <UITableViewDelegate, UITableViewDataSource>
|
||||
@interface EPMomentViewController () <UITableViewDelegate, UITableViewDataSource>
|
||||
|
||||
// MARK: - UI Components
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
make.size.mas_equalTo(CGSizeMake(56, 56));
|
||||
}];
|
||||
|
||||
NSLog(@"[NewMomentViewController] UI 设置完成");
|
||||
NSLog(@"[EPMomentViewController] UI 设置完成");
|
||||
}
|
||||
|
||||
// MARK: - Data Loading
|
||||
@@ -89,7 +89,7 @@
|
||||
if (self.isLoading) return;
|
||||
|
||||
self.isLoading = YES;
|
||||
NSLog(@"[NewMomentViewController] 开始加载数据,页码: %ld", (long)self.currentPage);
|
||||
NSLog(@"[EPMomentViewController] 开始加载数据,页码: %ld", (long)self.currentPage);
|
||||
|
||||
// 调用真实 API 加载动态列表
|
||||
NSString *page = [NSString stringWithFormat:@"%ld", (long)self.currentPage];
|
||||
@@ -108,12 +108,12 @@
|
||||
[self.dataSource addObjectsFromArray:list];
|
||||
self.currentPage++;
|
||||
[self.tableView reloadData];
|
||||
NSLog(@"[NewMomentViewController] 加载成功,新增 %lu 条动态", (unsigned long)list.count);
|
||||
NSLog(@"[EPMomentViewController] 加载成功,新增 %lu 条动态", (unsigned long)list.count);
|
||||
} else {
|
||||
NSLog(@"[NewMomentViewController] 没有更多数据");
|
||||
NSLog(@"[EPMomentViewController] 没有更多数据");
|
||||
}
|
||||
} else {
|
||||
NSLog(@"[NewMomentViewController] 加载失败: code=%ld, msg=%@", (long)code, msg);
|
||||
NSLog(@"[EPMomentViewController] 加载失败: code=%ld, msg=%@", (long)code, msg);
|
||||
// 如果 API 失败,显示提示
|
||||
if (self.dataSource.count == 0) {
|
||||
// 首次加载失败,显示空状态
|
||||
@@ -132,7 +132,7 @@
|
||||
// MARK: - Actions
|
||||
|
||||
- (void)onPublishButtonTapped {
|
||||
NSLog(@"[NewMomentViewController] 发布按钮点击");
|
||||
NSLog(@"[EPMomentViewController] 发布按钮点击");
|
||||
// TODO: 跳转到发布页面
|
||||
[self showAlertWithMessage:@"发布功能开发中"];
|
||||
}
|
||||
@@ -152,7 +152,7 @@
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
NewMomentCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NewMomentCell" forIndexPath:indexPath];
|
||||
EPMomentCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NewMomentCell" forIndexPath:indexPath];
|
||||
|
||||
if (indexPath.row < self.dataSource.count) {
|
||||
MomentsInfoModel *model = self.dataSource[indexPath.row];
|
||||
@@ -167,7 +167,7 @@
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
|
||||
NSLog(@"[NewMomentViewController] 点击动态: %ld", (long)indexPath.row);
|
||||
NSLog(@"[EPMomentViewController] 点击动态: %ld", (long)indexPath.row);
|
||||
// TODO: 跳转到详情页
|
||||
[self showAlertWithMessage:[NSString stringWithFormat:@"点击了第 %ld 条动态", (long)indexPath.row]];
|
||||
}
|
||||
@@ -206,7 +206,7 @@
|
||||
_tableView.contentInset = UIEdgeInsetsMake(10, 0, 10, 0);
|
||||
|
||||
// 注册 Cell
|
||||
[_tableView registerClass:[NewMomentCell class] forCellReuseIdentifier:@"NewMomentCell"];
|
||||
[_tableView registerClass:[EPMomentCell class] forCellReuseIdentifier:@"NewMomentCell"];
|
||||
|
||||
// 添加下拉刷新
|
||||
_tableView.refreshControl = self.refreshControl;
|
||||
|
@@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/// 新的动态 Cell(卡片式设计)
|
||||
/// 完全不同于原 XPMomentsCell 的列表式设计
|
||||
@interface NewMomentCell : UITableViewCell
|
||||
@interface EPMomentCell : UITableViewCell
|
||||
|
||||
/// 配置 Cell 数据
|
||||
/// @param model 动态数据模型
|
@@ -6,13 +6,13 @@
|
||||
// Copyright © 2025 YuMi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NewMomentCell.h"
|
||||
#import "EPMomentCell.h"
|
||||
#import "MomentsInfoModel.h"
|
||||
#import "AccountInfoStorage.h"
|
||||
#import "Api+Moments.h"
|
||||
#import <Masonry/Masonry.h>
|
||||
|
||||
@interface NewMomentCell ()
|
||||
@interface EPMomentCell ()
|
||||
|
||||
// MARK: - UI Components
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
@end
|
||||
|
||||
@implementation NewMomentCell
|
||||
@implementation EPMomentCell
|
||||
|
||||
// MARK: - Lifecycle
|
||||
|
@@ -258,7 +258,7 @@ import UIKit
|
||||
|
||||
/// 登录成功后刷新 TabBar
|
||||
/// - Parameter isLogin: 是否已登录
|
||||
@objc func refreshTabBar(isLogin: Bool) {
|
||||
func refreshTabBar(isLogin: Bool) {
|
||||
isLoggedIn = isLogin
|
||||
|
||||
if isLogin {
|
||||
|
@@ -22,7 +22,7 @@
|
||||
#import "EPMineViewController.h"
|
||||
|
||||
// 注意:
|
||||
// 1. NewMomentViewController 和 NewMineViewController 直接继承 UIViewController
|
||||
// 1. EPMomentViewController 和 EPMineViewController 直接继承 UIViewController
|
||||
// 2. 不继承 BaseViewController(避免 ClientConfig → PIBaseModel 依赖链)
|
||||
// 3. 其他依赖在各自的 .m 文件中 import
|
||||
|
||||
|
Reference in New Issue
Block a user