HCRouterKit 0.0.10

HCRouterKit 0.0.10

haisens 维护。



  • 殷海超, Groot

HCRouterKit

CI Status Version License Platform

示例

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install

需求

安装

HCRouterKit 可通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中

pod 'HCRouterKit'

1、路由注册,项目中的路由注册统一写在一个类中(NSObject或其他),相当于 hosts 文件,然后把需要在模块之外被调用的类以及方法注册在里面。进而进行界面跳转和方法调用。

static NSString *ROUTER_SCHEME = @"hcrouterkit";
#import "HCTestRouter.h"
#import "HCRouterKit.h"
#import "HCViewController.h"
//注册路由scheme
[[HCRouterKit defaultRouter] registerRouterWithScheme:ROUTER_SCHEME];
//注册类名以及快捷类名
[[HCRouterKit defaultRouter] registerClassQuickName:@"testhost" className:NSStringFromClass([self class])];
//注册方法名以及快捷方法名
[[HCRouterKit defaultRouter] registerSelectorQuickName:@"getvc" selectorName:@"getController:"];

2、在注册路由的类中实现获取实力对象及方法调用的方法

- (UIViewController *)getController:(NSDictionary *)parameters {
    return [[HCViewController alloc] initWithColor:parameters];
}

3、在 HCViewController 中

- (instancetype)initWithColor:(NSDictionary *)colorDic {
    if (self = [super init]) {
        self.view.backgroundColor = colorDic[@"color"];
    }
    return self;
}
BlockSelf(blockSelf);
[[HCRouterKit defaultRouter] openURL:@"hcrouterkit://testhost/getvc" parameters:@{@"color":[UIColor yellowColor]} completion:^(id  _Nullable completionObject) {

    if ([completionObject isKindOfClass:[UIViewController class]]) {
        [blockSelf presentViewController:completionObject animated:YES completion:^{
            NSLog(@"\n跳转成功!\n");
        }];
    }
    
} finished:^(id  _Nullable finishedObject) {

    NSLog(@"我是finished回调的:%@", finishedObject);

}];

4、注意:如果是有 finished 回调的,需在被访问的控制器(上述中的 HCViewController)中遵循 HCRouterKit 的协议,并实现回调方法。

[self hcrouter_performFinishedBlock:@"我是finished回调"];

作者

[email protected],殷海超(Groot)

授权

HCRouterKit 可在 MIT 授权下使用。更多信息请参阅 LICENSE 文件。