美文网首页
iOS路由协议

iOS路由协议

作者: 火三君 | 来源:发表于2019-06-26 11:46 被阅读0次

一、常规的路由协议

最近在看项目里面的路由协议,发现一个比较有意思的东西,在我之前接触到的项目里面,路由协议通常是会有一个单例来作为中转来实现在项目的任何地方都可以进行Push或者Present,使用这种办法实现路由协议有个问题就是,这个单例需要维护,随着项目复杂度的上升,会越来越难维护。当然也有好处,好处就是可以对项目里面所有的路由跳转有一个强控制。

二、发现的有趣的东西

而在我当前的项目中,路由的核心是利用了iOS特有的特性,根据UIView和UIViewController都是继承自UIResponder的特性


继承关系图

为UIResponder创建了一个Category,在这个Category里面,主要做了一件事,就是将事件进行传达,无论是来自UIView还是UIViewController的事件,如果没有处理,就会将事件发送给NextResponder,如此一来的话,打通了UIView和UIViewController的隔阂。

#import "UIResponder+BizExtension.h"

static __weak id currentFirstResponder;

@implementation UIResponder (BizExtension)
-(void) routerEventWithName:(NSString *)eventName dataInfo:(NSDictionary *)dataInfo{
    [[self nextResponder] routerEventWithName:eventName dataInfo:dataInfo];
}

+(id)currentFirstResponder {
    currentFirstResponder = nil;
    [[UIApplication sharedApplication] sendAction:@selector(findFirstResponder:)
                                               to:nil
                                             from:nil
                                         forEvent:nil];
    return currentFirstResponder;
}

-(void)findFirstResponder:(id)sender {
    currentFirstResponder = self;
}
@end

具体流程图下图


image.png

例如:我们可以方便的将UITableViewCell上的事件,直接进行传递,只需要在UIViewController中也同样实现相应的协议,即可处理UITableViewCell上的事件,而不需要写Block或者Delegate去单独处理。

相关文章

  • iOS路由协议

    一、常规的路由协议 最近在看项目里面的路由协议,发现一个比较有意思的东西,在我之前接触到的项目里面,路由协议通常是...

  • 路由器协议

    四种类型的路由器:能量感知路由协议;基于查询的路由协议;地理位置路由协议;可靠的路由协议 1.能量节点 2.基于查...

  • Internet协议

    Internet采用层次路由 AS内部协议也称位内部网络协议IGP 最常见的AS内部路由协议: 路由信息协议:RI...

  • CCNA-15、RIP协议

    路由信息协议-RIP 距离矢量路由协议会产生环路,链路状态协议不会产生环路。 距离矢量路由协议会产生环路,链路状态...

  • eNSP模拟实验-OSPF开销值、协议优先级及计时器

    由于路由器上可能同时运行多种动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置...

  • 路由协议

    一、路由协议(简单笔记) 1.1 路由协议是什么 路由协议就是使得每个路由器之间,可以稳定传输数据而不会混乱的一些...

  • 协议化的简单Router

    JMRouter 一个轻量级,纯Swift,协议化的路由控件,使用demo 要求 iOS 8.0+ Swift 5...

  • 路由选择协议

    常见路由协议介绍 RIPRIP“路由信息协议(Route Information Protocol)”的简写,主要...

  • 静态路由

    摘要 静态路由选择协议的高级特性包括:路由过滤、永久特性、浮动特性、递归路由、缺省路由。 协议比较 更新时遇到相同...

  • 计算机网络期末保命复习(3)

    RIP协议 RIP协议是向量-距离路由选择算法在局域网上的直接实现 RIP协议规定了路由器之间交换路由信息的时间、...

网友评论

      本文标题:iOS路由协议

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