Giter Site home page Giter Site logo

gbkrouterprotocol's Introduction

GBKRouterProtocol

Router based navigation solution for iOS application

Features

  • extension for UIViewController
  • extension for UINavigationController

Requirements

  • iOS 10.0+

Installation

CocoaPods

To integrate GBKRouterProtocol into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'GBKRouterProtocol', :git => '[email protected]:gbksoft-mobile-department/ios/gbkrouterprotocol.git'

Then, run the following command:

$ pod install

Use

Setup

Usage of library require import GBKRouterProtocol somewhere in the source file.

Naming

For Router should be used next naming:

  • (Module_Name)Router.swift

For example:

  • LoginRouter.swift

Code

If context is UIViewController

import UIKit
import GBKRouterProtocol

struct LoginRouter: GBKRouterProtocol {

    var context: UIViewController!

    func openLogin() {
        let loginController = LoginViewController()
        present(controller: loginController)
    }
}

If context is UINavigationController

import UIKit
import GBKRouterProtocol

struct LoginRouter: GBKRouterProtocol {

    var context: UINavigationController!

    func openLogin() {
        let loginController = LoginViewController()
        push(controller: loginController)
    }
}

Next in code we should call:

// For UIViewController
LoginRouter(in: self).openLogin(). // where self is current UIViewController

// For UINavigationController
LoginRouter(in: navigationController).openLogin()

To Do

  • extension for UITabBarController

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.