What is ZIKRouter?

An interface-oriented router for managing modules and injecting dependencies with protocol.

The view router can perform all navigation types in UIKit / AppKit through one method.

The service router can discover and prepare corresponding module with its protocol.


  •  Swift and Objective-C support
  •  iOS, macOS and tvOS support
  •  File template for quickly creating router
  •  Routing for UIViewController / NSViewController, UIView / NSView and any class
  •  Dependency injection, including dynamic injection and static injection
  •  Declaration of routable protocol for compile-time checking. Using undeclared protocol will bring compiler error. This is one of the most powerful feature
  •  Module matching with its protocol
  •  URL routing support
  •  Configure the module with its protocol rather than a parameter dictionary
  •  Required protocol and provided protocol for making thorough decouple
  •  Adapter for decoupling modules and add compatible interfaces
  •  Storyboard support. Views from a segue can be auto prepared
  •  Encapsulation for all transition methods and unwind methods in UIKit / AppKit, and also custom transition
  •  Error checking for view transition
  •  AOP for view transition
  •  Memory leak detection
  •  Custom events handling
  •  Auto registration
  •  Highly scalable


  • Pricing: Free
  • Resource Link: https://github.com/Zuikyo/ZIKRouter
  • Resource Maker: Zuikyo
  • Mobile Platform Destination: iOS Apps
  • Mobile Platform Support: Native iOS
  • Programming Languages: Objective-C
  • iOS Versions Supported: iOS 7.0+, iOS 8.0+, iOS 9.0+, iOS 10.0+, iOS 11.0+, iOS 12.0+
  • CocoaPods: ZIKRouter
  • Carthage: Zuikyo/ZIKRouter