From dd71c36e72f589e24f28f27c0708446922d44d68 Mon Sep 17 00:00:00 2001 From: zu Date: Fri, 29 Oct 2021 18:17:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4vc=E6=B7=BB=E5=8A=A0=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xplan-ios/Main/Match/XplanFlutterBoostDelegate.m | 12 +++--------- xplan-ios/Main/Mine/View/XPMineViewController.m | 7 ++----- xplan-ios/Main/Room/View/XPRoomViewController.h | 14 +++++++++++--- xplan-ios/Main/Room/View/XPRoomViewController.m | 11 +++++++++++ 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/xplan-ios/Main/Match/XplanFlutterBoostDelegate.m b/xplan-ios/Main/Match/XplanFlutterBoostDelegate.m index b1cd5dda..e1337070 100644 --- a/xplan-ios/Main/Match/XplanFlutterBoostDelegate.m +++ b/xplan-ios/Main/Match/XplanFlutterBoostDelegate.m @@ -22,7 +22,6 @@ - (void) pushNativeRoute:(NSString *) pageName arguments:(NSDictionary *) arguments { BOOL animated = arguments[@"animated"] ? [arguments[@"animated"] boolValue] : YES; BOOL present = arguments[@"present"] ? [arguments[@"present"] boolValue] : NO; - BOOL isRoomVC = [pageName isEqualToString:YYFlutterPushNavitePageChatRoom]; UIViewController *controller; controller = [self getNaviteClassNameWithPageName:pageName arguments:arguments]; UIViewController * currentVC = [[FlutterBoost instance] currentViewController]; @@ -31,11 +30,13 @@ } if (controller) { - if(present || isRoomVC){ + if(present){ [self.navigationController presentViewController:controller animated:animated completion:nil]; } else { [self.navigationController pushViewController:controller animated:animated]; } + } else if ([pageName isEqualToString:YYFlutterPushNavitePageChatRoom]) { + [XPRoomViewController openRoom:arguments[@"chatRoomID"] viewController:self.navigationController]; } else { NSLog(@"输入的类名不存在"); } @@ -73,13 +74,6 @@ - (UIViewController *)getNaviteClassNameWithPageName:(NSString *)pageName arguments:(NSDictionary *)arguments { if ([pageName isEqualToString:YYFlutterPushNavitePageCharge]) { return [[NSClassFromString(@"XPMineRechargeViewController") alloc] init]; - } else if ([pageName isEqualToString:YYFlutterPushNavitePageChatRoom]) { - XPRoomViewController* roomVC = [[XPRoomViewController alloc]init]; - roomVC.roomUid = arguments[@"chatRoomID"]; - roomVC.roomUid = @"1004699"; - BaseNavigationController * baseNav = [[BaseNavigationController alloc] initWithRootViewController:roomVC]; - baseNav.modalPresentationStyle = UIModalPresentationFullScreen; - return baseNav; } // if([pageName isEqualToString:YYFlutterPushNavitePageBindPaymentPwd]){ // return [[NSClassFromString(@"TTPayPwdViewController") alloc] init];; diff --git a/xplan-ios/Main/Mine/View/XPMineViewController.m b/xplan-ios/Main/Mine/View/XPMineViewController.m index 55a0a6ae..8148fd32 100644 --- a/xplan-ios/Main/Mine/View/XPMineViewController.m +++ b/xplan-ios/Main/Mine/View/XPMineViewController.m @@ -130,11 +130,8 @@ break; case XPMineItemType_Account: { - XPRoomViewController * roomVC = [[XPRoomViewController alloc] init]; - roomVC.roomUid = [NSString stringWithFormat:@"%d", 1004587]; - BaseNavigationController * baseNav = [[BaseNavigationController alloc] initWithRootViewController:roomVC]; - baseNav.modalPresentationStyle = UIModalPresentationFullScreen; - [self presentViewController:baseNav animated:YES completion:nil]; + NSString* roomUid = [NSString stringWithFormat:@"%d", 1004587]; + [XPRoomViewController openRoom:roomUid viewController:self]; return; XPMineRechargeViewController * rechargeVC = [[XPMineRechargeViewController alloc] init]; [self.navigationController pushViewController:rechargeVC animated:YES]; diff --git a/xplan-ios/Main/Room/View/XPRoomViewController.h b/xplan-ios/Main/Room/View/XPRoomViewController.h index d5438a93..87d2375c 100644 --- a/xplan-ios/Main/Room/View/XPRoomViewController.h +++ b/xplan-ios/Main/Room/View/XPRoomViewController.h @@ -11,9 +11,6 @@ NS_ASSUME_NONNULL_BEGIN @class XPRoomBackContainerView,RoomHeaderView,XPRoomMessageContainerView,XPRoomMenuContainerView,XPRoomActivityContainerView, XPRoomPositionContainView, RoomInfoModel, UserInfoModel, SocialStageView; @interface XPRoomViewController : MvpViewController -///房间的Uid -@property (nonatomic,copy) NSString * roomUid; - ///背景 @property (nonatomic,strong, readonly) XPRoomBackContainerView *backContainerView; ///房间信息 @@ -31,6 +28,17 @@ NS_ASSUME_NONNULL_BEGIN ///用户信息 @property (nonatomic,strong, readonly) UserInfoModel *userInfo; +/** XPRoomViewController 不允许外部 init ,请通过该方法启动房间。 + * @params roomUid 房主uid + * @params viewController 启动方 + */ ++ (BOOL)openRoom:(NSString*)roomUid viewController:(UIViewController*)viewController; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; +- (id)copy NS_UNAVAILABLE; +- (id)mutableCopy NS_UNAVAILABLE; + @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/XPRoomViewController.m b/xplan-ios/Main/Room/View/XPRoomViewController.m index 68960c69..c3099dc6 100644 --- a/xplan-ios/Main/Room/View/XPRoomViewController.m +++ b/xplan-ios/Main/Room/View/XPRoomViewController.m @@ -16,6 +16,7 @@ #import "RoomInfoModel.h" #import "UserInfoModel.h" ///View +#import "BaseNavigationController.h" #import "XPRoomActivityContainerView.h" #import "XPRoomBackContainerView.h" #import "XPRoomMenuContainerView.h" @@ -46,6 +47,8 @@ ///活动 @property (nonatomic,strong) XPRoomActivityContainerView *activityContainerView; +//房间的Uid +@property (nonatomic,copy) NSString * roomUid; ///用户信息 @property (nonatomic,strong) UserInfoModel *userInfo; ///房间信息 @@ -54,6 +57,14 @@ @implementation XPRoomViewController ++ (BOOL)openRoom:(NSString *)roomUid viewController:(UIViewController *)viewController { + XPRoomViewController * roomVC = [[self alloc] init]; + roomVC.roomUid = roomUid; + BaseNavigationController * baseNav = [[BaseNavigationController alloc] initWithRootViewController:roomVC]; + baseNav.modalPresentationStyle = UIModalPresentationFullScreen; + [viewController presentViewController:baseNav animated:YES completion:nil]; + return YES; +} - (void)dealloc { #warning to dox - 时刻注意这个方法 功能做完的时候删除此方法