implemented prepareForDisplay protocol
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
eeb0595857
commit
b946be833f
@ -46,11 +46,16 @@ import UIKit
|
||||
}
|
||||
|
||||
/// Convenience function for setting the navigation item.
|
||||
public static func setNavigationItem(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
||||
public static func setNavigationItemProperties(navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
||||
viewController.navigationItem.title = navigationItemModel.title
|
||||
viewController.navigationItem.accessibilityLabel = navigationItemModel.title
|
||||
viewController.navigationItem.hidesBackButton = navigationItemModel.hidesSystemBackButton
|
||||
viewController.navigationItem.leftItemsSupplementBackButton = !navigationItemModel.hidesSystemBackButton
|
||||
}
|
||||
|
||||
/// Convenience function for setting the navigation item.
|
||||
public static func setNavigationItem(navigationController: UINavigationController, navigationItemModel: NavigationItemModelProtocol, viewController: UIViewController) {
|
||||
setNavigationItemProperties(navigationItemModel: navigationItemModel, viewController: viewController)
|
||||
setNavigationButtons(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
||||
setNavigationTitleView(navigationController: navigationController, navigationItemModel: navigationItemModel, viewController: viewController)
|
||||
}
|
||||
@ -152,6 +157,14 @@ extension NavigationController: MVMCoreViewManagerProtocol {
|
||||
manager?.newDataReceived?(in: viewController)
|
||||
}
|
||||
|
||||
public func prepareDisplay(for viewController: UIViewController) {
|
||||
if let topViewController = topViewController,
|
||||
let model = getNavigationModel(from: viewController) {
|
||||
Self.setNavigationItemProperties(navigationItemModel: model, viewController: topViewController)
|
||||
}
|
||||
manager?.prepareDisplay?(for: viewController)
|
||||
}
|
||||
|
||||
public func willDisplay(_ viewController: UIViewController) {
|
||||
if let topViewController = topViewController,
|
||||
let model = getNavigationModel(from: viewController) {
|
||||
@ -171,6 +184,15 @@ extension NavigationController: MVMCoreViewManagerProtocol {
|
||||
}
|
||||
|
||||
extension NavigationController: MVMCorePresentationDelegateProtocol {
|
||||
public func navigationController(_ navigationController: UINavigationController, prepareDisplayFor viewController: UIViewController) {
|
||||
guard self == navigationController else { return }
|
||||
guard let newViewController = MVMCoreUIUtility.getViewControllerTraversingManagers(viewController) else { return }
|
||||
if let model = getNavigationModel(from: newViewController) {
|
||||
Self.setNavigationItemProperties(navigationItemModel: model, viewController: newViewController)
|
||||
}
|
||||
manager?.prepareDisplay?(for: viewController)
|
||||
}
|
||||
|
||||
public func navigationController(_ navigationController: UINavigationController, willDisplay viewController: UIViewController) {
|
||||
guard self == navigationController else { return }
|
||||
if let controller = viewController as? (UIViewController & MVMCoreViewManagerViewControllerProtocol) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user