测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新版本 | 2017年2月 |
Swift支持的 Swift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Taiki Suzuki 维护。
支持 iOS9 的 3D Touch!!
SAHistoryNavigationViewController 在 UINavigationContoller 中实现了类似 iOS 任务管理的 UI。
ManiacDev.com 参考。
https://maniacdev.com/2015/03/open-source-component-enhancing-the-back-button-with-view-history-navigation
将 SAHistoryNavigationViewController 目录添加到您的项目中。
如果您是从 Cocoapods 安装的,您必须写入 import SAHistoryNavigationViewController
。
将 UINavigationController 的自定义类设置为 SAHistoryNavigationViewController。另外,将模块设置为 SAHistoryNavigationViewController。
您可以在任何 ViewController 中将 SAHistoryNavigationViewController 作为 self.sah.navigationController
使用,因为实现了以下 extension SAHistoryExtension
代码。
public protocol SAHistoryCompatible {
associatedtype CompatibleType
var sah: CompatibleType { get }
}
public extension SAHistoryCompatible {
public var sah: SAHistoryExtension<Self> {
return SAHistoryExtension(self)
}
}
public final class SAHistoryExtension<Base> {
public let base: Base
public init(_ base: Base) {
self.base = base
}
}
extension UIViewController: SAHistoryCompatible {}
extension SAHistoryExtension where Base: UIViewController {
public var navigationController: SAHistoryNavigationViewController? {
return base.navigationController as? SAHistoryNavigationViewController
}
}
并且您需要按照这种方式初始化。
let ViewController = UIViewController()
let navigationController = SAHistoryNavigationViewController()
navigationController.setViewControllers([ViewController], animated: true)
presentViewController(navigationController, animated: true, completion: nil)
如果您想在不使用长按动作的情况下启动导航历史,请使用此代码。
//In any UIViewController
self.sah.navigationController?.showHistory()
如果您想自定义导航历史的背景,您可以使用这些方法。
//In any UIViewController
self.sah.navigationController?.contentView
self.sah.navigationController?.historyBackgroundColor
这是代理方法。
@objc public protocol SAHistoryNavigationViewControllerDelegate: NSObjectProtocol {
optional func historyControllerDidShowHistory(controller: SAHistoryNavigationViewController, viewController: UIViewController)
}
铃木大和,[email protected]
SAHistoryNavigationViewController遵循MIT许可。有关更多信息,请参阅LICENSE文件。