EventsTree 1.0.0

EventsTree 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最近发布2017 年 12 月
SwiftSwift 版本3.0
SPM支持 SPM

Event Node 维护。



  • 作者
  • Stas Kirichok

由 Yalantis 制作. 受 https://github.com/mmrmmlrr/ModelsTreeKit 启发

动力

想象一下,您有一个拥有许多屏幕的 iOS 应用。每个屏幕都由 UIViewController 和一些数据/逻辑/辅助类管理。所有与一个屏幕联系在一起的我称为模块。

我们不对模块内类的通信进行讨论 - 这可以通过代理/callback/反应信号相对容易地完成。但如果你需要在不同的模块之间进行通信。它们可以在导航流程中彼此远离。你可以使用 NSNotificationCenter 来处理它,或者你可以将回调/delegate 等拉跨整个应用程序,使它过于复杂。

解决方案

应用程序中模块的导航流程是树状结构。EventNode 提供了针对此类情况的树状解决方案(不仅限于模块,还包括任何树状结构)。我们不会为每次变化创建路由,而是将提供 单一的简单方式 来传递事件到所需的位置。

原则

  1. 所有发出的更改都相同,我称之为 - 事件
  2. 路径的每个部分(我称之为 EventNode)与其他部分相同,独立且不需要知道其他节点或它们在树中的相对位置。
  3. 节点以树的形式组织:根节点没有父节点,叶子节点没有子节点,其他节点有两个。每个节点只有一个父节点,可以有无限数量的子节点。
  4. 您可以从每个节点发出事件 - 我称之为 “发出事件”
  5. 每个发出的事件都将传递到 所有 节点。我称之为 - “事件传播”
  6. 发出的事件将沿着树向上到根节点,即 提升,然后递归地传递到根节点的所有子节点 - 传播
  7. 您可以为每个节点添加无限数量的 “事件处理程序”。事件处理程序可以在事件在节点上提升或/和传播阶段执行一些闭包。
  8. 您可以在提升时消耗事件以阻止它在尚未接收事件的节点处处理。

如何安装

如何使用