AppState 0.2.0

AppState 0.2.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016年1月
SPM支持 SPM

Viet Phan 维护。



AppState 0.2.0

  • 作者:
  • Viet Phan

是什么

这是一个用 Swift 编写的简单库,用作 iOS 应用中的路由管理。

用法

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

  • 通过 AppStateEvent 定义路由

    let appState = AppState(initialState: "root", events: [
      AppStateEvent(name: "showLandingPage", from: "root", to: "landingPage"),
      AppStateEvent(name: "showSignInPage", from: ["landingPage", "welcomePage"], to: "signInPage")
    ])
    • 名称:事件名称
    • 从:源状态
    • 到:目标状态
    • 例如:如果应用程序处于“root”状态(viewController),应用程序只能更新到“landingPage”状态。如果应用程序处于“landingPage”或“welcomePage”状态,则可以更新到“signInPage”状态
  • 为每个状态注册视图控制器为 AppStateDelegate

    appState.registerViewController(signInViewController, forState: "signInPage")
    appState.registerViewController(welcomeViewController, forState: "welcomePage")
    appState.registerViewController(homeViewController, forState: "landingPage")
    
    extension SignInViewController: AppStateDelegate {
    
      // will call when entering new state
      func onEnterState(eventName: String, currentState: String, from: String, to: String, context: StateContext?) {
        // got context, present - push - pop - animation new view, assign data from context ...
      }
    
      // will call when leaving current state
      func onLeaveState(eventName: String, currentState: String, from: String, to: String, context: StateContext?)
    }
    • 通过调用 appState.transitTo(<eventName>, context: context) 来更新状态,并通过 context 作为 [String: AnyObject] 类型传递数据
  • 例如:应用程序处于“landingPage”状态(为 HomeViewController)并调用 appState.transitTo("showSignInPage"),应用程序将更新为“signInPage”状态(为 SignInViewController)。

要求

安装

AppState 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中

pod "AppState"

作者

Viet Phan, [email protected]

许可证

AppState 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。