InfiniteNavigationController-iOS 1.1.0

InfiniteNavigationController-iOS 1.1.0

Allan melo 维护。



  • Allan Melo

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

  1. 您需要安装CocoaPods。

  2. 在您的项目中创建一个名为 Podfile 的文件,并添加以下行

    pod 'InfiniteNavigationController-iOS'
  3. 运行 $ pod install

  4. 这将下载最新版本的SDK并创建一个.xcworkspace文件,使用该文件在Xcode中打开您的项目。