CKNavigation 0.1.2

CKNavigation 0.1.2

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

Charles Kenney维护。



CKNavigationController

Cocoa开发的 UINavigationController 端口

包括CKNavigation

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

source 'https://github.com/CocoaPods/Specs.git'
platform :osx, '10.12'

target 'TargetName' do
  pod 'CKNavigation', '~> 0.1.1'
end

用法

CKNavigationController旨在为单个NSWindow提供导航,类似于UIKit中的iOS中的UINavigationController。这对于分离低配置状态栏应用中的视图等是一个很好的解决方案。

实现CKNavigationController与iOS中的UINavigationController完全相同。只需调用初始化器,并传入您想要设置为根的控制器。注意:为了将视图控制器添加到导航控制器,视图控制器必须继承自CKNavigatableViewController或显式遵循CKNavigatable协议。

import CKNavigation

let myController = MyViewController()
let myNavigationController = CKNavigationController(rootViewController: myController)

这种方法非常适合程序化用户界面。您可以简单地创建一个NSWindow实例,并将您的导航控制器作为子视图添加。

import Foundation
import Cocoa
import CKNavigation

class AppDelegate: NSObject, NSApplicationDelegate {

    var navigationController: CKNavigationController!
    
    let controller = ViewController()
    
    let window: NSWindow {
        let content = NSRect(x: 0, y: 0, width: 500, height: 500)
        let window = NSWindow(contentRect: content, styleMask: .closable, backing: .buffered, defer: false)
        return window
    }()
    
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // initialize navigation controller with root view
        navigationController = CKNavigationController(rootViewController: controller)
        // add navigation controller to the window
        window.contentView?.addSubview(navigationController.view)
        navigationController.view.wantsLayer = true
        window.makeKeyAndOrderFront(nil)
    }
}

要将视图控制器推入堆栈,同样也很容易。在myViewController类内部执行

    @objc func handleNextButtonPress(_ sender: Any?) {
          let newController = AnotherViewController()
          self.navigationController!.pushViewController(newController)
    }

同样,要从不带视图控制器中弹出

    @objc func handlePreviousButtonPress(_ sender: Any?) {
          self.navigationController!.popViewController()
    }

示例

您在上面的演示GIF中看到的示例,在顶部可在此处获得这里。此实现是100%程序化的。

许可证

MIT © Charles Kenney