KYFlipNavigationController 0.2.0

KYFlipNavigationController 0.2.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2017年6月
SwiftSwift 版本3.1
SPM支持 SPM

kyle Yang维护。



  • 作者
  • kyleYang

KYFlipNavigationController 是一个自定制的 NavigationController,使用 UIViewController 来管理 UIViewController(包括 UINavigationController,UITabbarController,UIViewController),就像 UINavigationController 一样。许多应用程序如 EasyNet News 和 Toutiao 在推入时使用 TabbarController UINavigationController。

## 概述 替代文本

使用方法

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

初始化

将 flipNavigationController 设置为窗口的根控制器,self.flipNavigationController 将会找到 KYFlipNavigationController,如果它存在的话!

   let firstVC = FirstViewController(nibName: nil, bundle: nil);
   firstVC.title = "First"
   let firstNavi = UINavigationController(rootViewController: firstVC)

   let sencondVC = SecondViewController(nibName: nil, bundle: nil);
   sencondVC.title = "Second"

   let tabbar = RDVTabBarController()
   tabbar.viewControllers = [firstNavi,sencondVC]
   
   let flipViewController = KYFlipNavigationController(rootViewCotroller: tabbar)
   self.window = UIWindow();
   self.window?.backgroundColor = UIColor.white;
   self.window?.rootViewController = flipViewController;
   self.window?.makeKeyAndVisible()

推送或弹出

推送和弹出几乎与 UINavigationController 相似。关键是要找到 flipNavigationController。这很容易,我们可以使用 UIViewController 的扩展。

   //Push
   let  viewController = ThirdViewController(nibName: nil, bundle: nil)
   viewController.title = "cell_\(indexPath.row)"
   // push a navigationcontroller
   let navi = UINavigationController(rootViewController: viewController)
   self.rdv_tabBarController.flipNavigationController?.pushViewController(navi, animated: true)//self is add to a tabbarcontroller
   
   //we also an push a UIViewController,and if self is not add to a tabbarcontroller
   self.flipNavigationController?.pushViewController(viewController, animated: true)
   

     //Pop
    self.flipNavigationController?.popViewController(true)
    //also we can pop to a viewcontroller or to the rootviewcontroller

公开的函数

   //Push
   pushViewController(_ viewController : UIViewController, animated : Bool, completed : KYFlipNavigationCompletionBlock? = nil)

   //Pop
   public func popViewController(_ animated : Bool, completed : KYFlipNavigationCompletionBlock? = nil)
   public func popToViewController(_ viewController : UIViewController, animated : Bool, completed : KYFlipNavigationCompletionBlock? = nil)
   public func popToRootViewControllerAnimated(_ animated : Bool ,completed : KYFlipNavigationCompletionBlock?)

改变栈

您也可以在需要时更改 UIViewController 栈,这样您就可以从栈中删除一些 viewcontroller 或添加一些 viewcontroller 并改变弹出方式。

    guard let viewControllers = self.flipNavigationController?.viewControllers else {
    	return
    }
    var newControllers : Array<UIViewController> = []
    for viewController in viewControllers {
       if !viewController.isKindOfClass(ForthViewController.self) {
            newControllers.append(viewController)
        }
    }
    self.flipNavigationController?.viewControllers = newControllers

需求

安装

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

pod "KYFlipNavigationController"

作者

kyleYang, [email protected]

如果您发现任何问题,请告诉我

许可证

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