InfiniteNavigationController-iOS
库以限制视图控制器堆栈在内存中的数量。使用低内存使用无限导航构建您的应用程序。允许用户创建视图控制器的状态模型,使得在需要时可以销毁和重建。
如何使用?
您只需在您的视图控制器上实现 StackProcotol,如下所示
extension ViewController: StackProtocol {
func getStateModel() -> StackItem {
return StackItem(viewController: { stateModel in
if let (title, sliderValue) = stateModel as? (String, Float) {
print("""
You can get your stateModel to
instantiate your ViewController if you are using XIB's
\(title), \(sliderValue)
""")
}
let storyboard = UIStoryboard(name: "Main", bundle: nil)
return storyboard.instantiateViewController(withIdentifier: "defaultViewController")
}, stateModel: (title, slider.value))
}
func setState(model: StackItem) {
if let (text, value) = model.stateModel as? (String, Float) {
title = text
sliderValue = value
}
}
}
-
在 getStateModel() 方法上,您需要返回一个 StackItem 对象。StackItem 有两个参数
- 一个返回您的视图控制器的块(这允许用户使用 Storyboard 或 XIB 的)
- 一个状态模型,用于保存用户希望持久化的任何状态。
-
setState() 方法是可选的,如果您需要恢复视图的状态,请实现它。
设置
CocoaPods
-
您需要安装CocoaPods。
-
在您的项目中创建一个名为
Podfile
的文件,并添加以下行pod 'InfiniteNavigationController-iOS'
-
运行
$ pod install
。 -
这将下载最新版本的SDK并创建一个.xcworkspace文件,使用该文件在Xcode中打开您的项目。