(A)の使用で同じプロジェクトのiOSのコンポーネント

コンポーネントの最近の研究では、多くの情報を読んで、それは参照を容易にするための小さなパートナーを記録ピットの多くを満たしています。神ではなく、私が最もシンプルな無地の言語で表現されるように偉大な、我々はより多くの友人を知っていることを望む、私は世界平和を願います

コンポーネントベースのコンポーネントベースの個人的な感情の高維持費、主にデカップリングのために、しかし、良い基盤

まず、アイデアの具現化の同じ構成要素の下のプロジェクトは、主に使用されるミドルウェアCTMediatorは、(例えば、多くのコントローラとの間の直接プッシュジャンプとして、通信のブリッジとしてそれを解釈し、その後のCTMediatorプッシュスルーCTMediatorであるミドルウェアを使用)

二つのコントローラを実現するために移動:

1. CTMediatorプロジェクトのインポートファイルは、もちろん、「CTMediator」ポッドポッド内に導入すること

 

 目的は、第三のステップCTMediator + CTMediatorManagerクラスパラメータの方法を提供する製造方法を記述するためにターゲットコントローラにジャンプすることである:2.ジャンプ先のファイルを書きます

注意:Target_TotalTargetVCのターゲット:オブジェクト名のプレフィックスが固定されており、

Action_nativeDetailMainViewController Action_メソッド名の接頭辞は、コード可視理由CTMediatorを参照して、固定されています。

Target_TotalTargetVC.hコード

#import <財団/ Foundation.h> 

NS_ASSUME_NONNULL_BEGIN 

@interface Target_TotalTargetVC:NSObjectの
 - (のUIViewController *)Action_nativeDetailMainViewController:(NSDictionaryの*)のparams ;
@end 

NS_ASSUME_NONNULL_END

Target_TotalTargetVC.m

#importを " Target_TotalTargetVC.h " 
の#import  " MainViewController.h " 

@implementation Target_TotalTargetVC

 - (のUIViewController *)Action_nativeDetailMainViewController:(NSDictionaryの*)paramsは
{ 
    MainViewController * VC = [[MainViewController ALLOC] INIT]。
    VC.dic =ののparams ;
    返すVCを。
} 
@end

3.書き込みCTMediator分類CTMediator + CTMediatorManager

この分類の目的:呼び出し方法によってミドルウェアCTMediatorは、パラメータは方法Target_TotalTargetVCオブジェクトから導出され、その結果、ジャンプコントローラのUIViewController返さ

 CTMediator + CTMediatorManager.h

#importを " CTMediator.h " 

NS_ASSUME_NONNULL_BEGIN 

@interface CTMediator(CTMediatorManager)
 - (のUIViewController *)CTMediator_viewMainViewController:(NSDictionaryの*)のparams ;
@end 

NS_ASSUME_NONNULL_END

CTMediator + CTMediatorManager.m

#importを " CTMediator + CTMediatorManager.h " 

// 这里指的是Target_TotalTargetVC.h对象 
NSStringの* constの kCTMediatorTotalTargetObject = @ " TotalTargetVC " // 这指的是Target_TotalTargetVC.m中Action_nativeDetailMainViewControllerf方法 
NSStringの* constの kCTMediatorActionNativeDetailMainViewController = @ " nativeDetailMainViewController " 

@implementation CTMediator(CTMediatorManager)


 - (のUIViewController *)CTMediator_viewMainViewController:(NSDictionaryの*)のparams 
{ 
    //CTMediator_viewMainViewControllerがCTMediator延長されるので、この方法のCTMediatorとして使用することができる 
    のUIViewController *のViewController = [:kCTMediatorTotalTargetObject自己performTarget 
                                                    処置:kCTMediatorActionNativeDetailMainViewController 
                                                    のparamsparamsは];
     IF([のViewControllerザisKindOfClass:のUIViewControllerのクラスは]]){
         戻りのViewControllerを; 
    } {
         // ここに例外処理のシナリオ、特定の製品の取り扱い方によって
        リターン[[のUIViewControllerのalloc]のinit]; 
    } 
} 
@end

4.あなたがそれに書かれてジャンプする必要がある最後のステップ、

#pragmaマーク-跳转
- (ボイド)toMainViewController:(BOOL)isAnimate { 
    のUIViewController * VC = [[CTMediator sharedInstance] CTMediator_viewMainViewController:{@ "@ キー"" @ CTMetor传值你好" }]。
    [self.navigationController pushViewController:VCアニメーション:isAnimate]。
}

ここで唯一異なるプロジェクト間をジャンプして次の記事に、同じプロジェクトのミドルウェアを書きます。

 

おすすめ

転載: www.cnblogs.com/dujiahong/p/11205013.html