测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年6月 |
SwiftSwift 版本 | 3.1 |
SPM支持 SPM | ✗ |
由kyle Yang维护。
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 文件。