这是一个用 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")
])
为每个状态注册视图控制器为 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 文件。