美文网首页
iOS组件化之Mediator方案

iOS组件化之Mediator方案

作者: xsgoing | 来源:发表于2021-03-30 17:49 被阅读0次

    此方案使用Casa在github上提供的CTMediator库。

    大概流程如下图

    模块调用示意图

    每个模块都提供一个Action接口和一个Mediator的category,

    其他模块调用category中的方法,category通过runtime调用Action中的方法。

    项目调用实例:

      [[MTMediator sharedInstance] position_pushOrderEditViewController:order];

    #import "MTMediator+Position.h"
    NSString * const kMTMediatorTargetPosition = @"Position";
    NSString * const kMTMediatorActionPushOrderEditViewController = @"pushOrderEditViewController";
    NSString * const kMTMediatorActionOpenPositions = @"openPositions";
    @implementation MTMediator (Position)
    - (UIViewController *) position_pushOrderEditViewController:(MTOrder *)order {   
             UIViewController *viewController = [self performTarget:kMTMediatorTargetPosition                                                                                                                                                  action:kMTMediatorActionPushOrderEditViewController                                                                                                              params:@{@"order":order}  shouldCacheTarget:NO];   
         if ([viewController isKindOfClass:[UIViewController class]]) { 

               return viewController;   

        }
        else{       

        return [[UIViewController alloc] init];   

        }

    }

    #import "MTOrderEditController.h"
    @implementation Target_Position
    - (UIViewController *)Action_pushOrderEditViewController:(NSDictionary *)params { 
          MTOrderEditController *editVC = [[MTOrderEditController alloc] init]; 
          MTOrder*order = params[@"order"];   
          editVC.orderModel= order;   
          editVC.quotationModel = order.qutationWeakModel;   
          UIViewController *controler = [UIViewController mt_getCurrentViewController]; 
          if (controler.navigationController) [controler.navigationController pushViewController:editVC animated:true];   
          returneditVC;

    }

    相关文章

      网友评论

          本文标题:iOS组件化之Mediator方案

          本文链接:https://www.haomeiwen.com/subject/hneghltx.html