Nivelir 1.8.2

Nivelir 1.8.2

Almazrafi 维护。



Nivelir 1.8.2

  • 作者
  • Almaz Ibragimov

Nivelir

Build Status Cocoapods Carthage compatible SPM compatible Platforms Xcode Swift License

Nivelir 是一个为 iOS 和 tvOS 应用程序提供导航的 DSL,具有简单、链式和编译时安全的语法。

内容

需求

  • iOS 12.0+ / tvOS 12.0+
  • Xcode 13.0+
  • Swift 5.5+

安装

CocoaPods

CocoaPods 是一款 Cocoa 项目的依赖管理器。可以通过以下命令安装它

$ gem install cocoapods

要使用 CocoaPods 将 Nivelir 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

platform :ios, '12.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Nivelir', '~> 1.5.1'
end

最后,运行以下命令

$ pod install

Carthage

Carthage是一款去中心化的依赖管理器,它构建您的依赖并提供二进制框架。您可以使用以下命令通过Homebrew安装Carthage:

$ brew update
$ brew install carthage

要使用Carthage将Nivelir集成到您的Xcode项目中,请在您的Cartfile中指定它。

github "hhru/Nivelir" ~> 1.5.1

最后运行carthage update构建框架,并将生成的Nivelir.framework拖动到您的Xcode项目中。

Swift Package Manager

Swift Package Manager是一种管理Swift代码分发的工具。它与Swift构建系统集成,以自动化下载、编译和链接依赖的过程。

要使用Swift Package Manager将Nivelir集成到您的Xcode项目中,将以下内容添加到您的Package.swift文件中作为依赖。

.package(url: "https://github.com/hhru/Nivelir.git", from: "1.5.1")

然后指定“Nivelir”作为您希望使用Nivelir的目标的依赖项。

以下是示例Package.swift文件的内容:

// swift-tools-version:5.5
import PackageDescription

let package = Package(
    name: "MyPackage",
    products: [
        .library(name: "MyPackage", targets: ["MyPackage"])
    ],
    dependencies: [
        .package(url: "https://github.com/hhru/Nivelir.git", from: "1.5.1")
    ],
    targets: [
        .target(name: "MyPackage", dependencies: ["Nivelir"])
    ]
)

Usage

API文档

快速入门

让我们实现一个简单的视图控制器,可以设置背景颜色。

class SomeViewController: UIViewController {

    let color: UIColor

    init(color: UIColor) {
        self.color = color

        super.init(nibName: nil, bundle: nil)
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = color
    }
}

然后,我们需要实现一个构建器来创建我们的控制器。

struct SomeScreen: Screen {

    let color: UIColor

    func build(navigator: ScreenNavigator) -> UIViewController {
        SomeViewController(color: color)
    }
}

现在我们可以使用这个屏幕进行导航。

let navigator = ScreenNavigator()

navigator.navigate { route in
    route
        .top(.stack)
        .popToRoot()
        .push(SomeScreen(color: .red))
        .push(SomeScreen(color: .green)) { route in
            route.present(SomeScreen(color: .blue))
        }
}

该导航执行以下步骤:

  • 搜索堆栈中的顶层容器(UINavigationController
  • 将其堆栈重置为第一个屏幕
  • 在堆栈中添加一个红色屏幕
  • 在堆栈中添加一个绿色屏幕
  • 将蓝色屏幕在绿色屏幕上模态显示

速查表

了解Nivelir最常用的使用案例。请参考API文档中的文章。

示例应用

示例应用

是一个简单的iOS和tvOS应用,演示了Nivelir在实际中的应用方式。这也是开始使用这个框架的好地方。

要安装它,请在终端中运行以下命令

$ git clone https://github.com/hhru/Nivelir.git
$ cd Nivelir/Example
$ pod install
$ open NivelirExample.xcworkspace

文章和视频

文章

视频

通讯

  • 如果您需要帮助,请打开一个问题。
  • 如果您发现了一个错误,请打开一个问题。
  • 如果您有功能请求,请打开一个问题。
  • 如果您想做出贡献,请提交一个拉取请求。

📬您还可以通过Telegram联系我们,我们将为您提供帮助:https://t.me/hh_tech

许可证

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