NavigationKit
Navigation Kit used for make threat with screen that have differents navigation bar style, make change style of bar easy.
Advantages
- set Background Image for navigation bar and title color for every single screen.
- set color for navigation bar and their title for every single screen.
- Hide navigation bar feature for every single screen.
- can make navigation bar color transparent for every single screen.
- can set default navigation bar style if Viewcontroller not implement NavigationDelegate will take this default style.
Requirements
- IOS 13+
- Swift 5+
How used (configuration):
Pod install
pod 'NavigationKit',:git => "https://github.com/salah-mohammed/NavigationKit.git"
- First
public class MainNavigationController: NavigationController {
public override func viewDidLoad() {
super.viewDidLoad()
NavigationManager.shared.navigationController=self;
// Do any additional setup after loading the view.
}
}
- Second
if you want set Navigation bar transparent and change title color .
class FirstViewController: UIViewController,NavigationDelegate {
var navigationData:NavigationData=NavigationData.init(NavigationManager.NavigationStyle.custom(NavigationManager.BarColor.transparent,titleColor:UIColor.black))
public override func viewDidLoad() {
super.viewDidLoad()
}
}
if you want to set Navigation bar color and set title color for it.
class SecondViewController: UIViewController,NavigationDelegate {
var navigationData: NavigationData=NavigationData.init(NavigationManager.NavigationStyle.custom(NavigationManager.BarColor.customColor(UIColor.blue), titleColor: UIColor.white))
public override func viewDidLoad() {
super.viewDidLoad()
}
}
if you want to hide Navigation bar.
class ThiredViewController: UIViewController,NavigationDelegate {
var navigationData: NavigationData=NavigationData.init(NavigationManager.NavigationStyle.hide);
public override func viewDidLoad() {
super.viewDidLoad()
}
}
if you want to set background image for Navigation bar and set title color for it.
class ForthViewController: UIViewController,NavigationDelegate {
var navigationData: NavigationData=NavigationData.init(NavigationManager.NavigationStyle.custom(NavigationManager.BarColor.backgroundImage(UIImage.init(named:"navigationImage")!), titleColor: UIColor.white))
public override func viewDidLoad() {
super.viewDidLoad()
}
}
- Thired
if you want to set default style 'if Viewcontroller not implement NavigationInfoDelegate'
NavigationManager.shared.defaultData = NavigationData.init(NavigationManager.NavigationStyle.custom(NavigationManager.BarColor.customColor(UIColor.blue), titleColor: UIColor.white))
Configure Successfully
You can refresh navigation style by
(self.navigationController as? MainNavigationController)?.refrehNavigationData();