move navigation bar setter to pre-animation for smoothness
This commit is contained in:
parent
cd87a78072
commit
ced4728ca0
@ -69,7 +69,6 @@ extension NavigationController: MVMCoreViewManagerProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func newDataReceived(in viewController: UIViewController) {
|
public func newDataReceived(in viewController: UIViewController) {
|
||||||
|
|
||||||
if isDisplayed(viewController: viewController),
|
if isDisplayed(viewController: viewController),
|
||||||
let topViewController = topViewController,
|
let topViewController = topViewController,
|
||||||
let model = getNavigationModel(from: viewController) {
|
let model = getNavigationModel(from: viewController) {
|
||||||
@ -81,44 +80,40 @@ extension NavigationController: MVMCoreViewManagerProtocol {
|
|||||||
|
|
||||||
public func willDisplay(_ viewController: UIViewController) {
|
public func willDisplay(_ viewController: UIViewController) {
|
||||||
if let topViewController = topViewController,
|
if let topViewController = topViewController,
|
||||||
|
isDisplayed(viewController: viewController),
|
||||||
let model = getNavigationModel(from: viewController) {
|
let model = getNavigationModel(from: viewController) {
|
||||||
setNavigationItem(with: model, for: topViewController)
|
setNavigationItem(with: model, for: topViewController)
|
||||||
|
setNavigationBarUI(with: model)
|
||||||
}
|
}
|
||||||
manager?.willDisplay?(viewController)
|
manager?.willDisplay?(viewController)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func displayedViewController(_ viewController: UIViewController) {
|
public func displayedViewController(_ viewController: UIViewController) {
|
||||||
if isDisplayed(viewController: viewController),
|
|
||||||
let model = getNavigationModel(from: viewController) {
|
|
||||||
setNavigationBarUI(with: model)
|
|
||||||
}
|
|
||||||
manager?.displayedViewController?(viewController)
|
manager?.displayedViewController?(viewController)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension NavigationController: MVMCorePresentationDelegateProtocol {
|
extension NavigationController: MVMCorePresentationDelegateProtocol {
|
||||||
public func navigationController(_ navigationController: UINavigationController, prepareDisplayFor viewController: UIViewController) {
|
public func navigationController(_ navigationController: UINavigationController, prepareDisplayFor viewController: UIViewController) {
|
||||||
|
if let controller = viewController as? (UIViewController & MVMCoreViewManagerViewControllerProtocol) {
|
||||||
|
MVMCoreViewManagerViewControllerProtocolHelper.helpSetManager(self, viewController: controller)
|
||||||
|
}
|
||||||
guard self == navigationController,
|
guard self == navigationController,
|
||||||
let newViewController = MVMCoreUIUtility.getViewControllerTraversingManagers(viewController),
|
let newViewController = MVMCoreUIUtility.getViewControllerTraversingManagers(viewController),
|
||||||
let model = getNavigationModel(from: newViewController) else { return }
|
let model = getNavigationModel(from: newViewController) else { return }
|
||||||
setNavigationItem(with: model, for: viewController)
|
setNavigationItem(with: model, for: viewController)
|
||||||
|
setNavigationBarUI(with: model)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func navigationController(_ navigationController: UINavigationController, willDisplay viewController: UIViewController) {
|
public func navigationController(_ navigationController: UINavigationController, willDisplay viewController: UIViewController) {
|
||||||
guard self == navigationController,
|
guard self == navigationController,
|
||||||
let newViewController = MVMCoreUIUtility.getViewControllerTraversingManagers(viewController) else { return }
|
let newViewController = MVMCoreUIUtility.getViewControllerTraversingManagers(viewController) else { return }
|
||||||
if let controller = viewController as? (UIViewController & MVMCoreViewManagerViewControllerProtocol) {
|
|
||||||
MVMCoreViewManagerViewControllerProtocolHelper.helpSetManager(self, viewController: controller)
|
|
||||||
}
|
|
||||||
manager?.willDisplay?(newViewController)
|
manager?.willDisplay?(newViewController)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func navigationController(_ navigationController: UINavigationController, displayedViewController viewController: UIViewController) {
|
public func navigationController(_ navigationController: UINavigationController, displayedViewController viewController: UIViewController) {
|
||||||
guard self == navigationController,
|
guard self == navigationController,
|
||||||
let newViewController = MVMCoreUIUtility.getViewControllerTraversingManagers(viewController) else { return }
|
let newViewController = MVMCoreUIUtility.getViewControllerTraversingManagers(viewController) else { return }
|
||||||
if let model = getNavigationModel(from: newViewController) {
|
|
||||||
setNavigationBarUI(with: model)
|
|
||||||
}
|
|
||||||
manager?.displayedViewController?(newViewController)
|
manager?.displayedViewController?(newViewController)
|
||||||
if let controller = viewController as? (UIViewController & MVMCoreViewManagerViewControllerProtocol) {
|
if let controller = viewController as? (UIViewController & MVMCoreViewManagerViewControllerProtocol) {
|
||||||
controller.viewControllerReady?(inManager: self)
|
controller.viewControllerReady?(inManager: self)
|
||||||
|
|||||||
@ -153,7 +153,7 @@ extension MVMCoreUISplitViewController: MVMCoreViewManagerProtocol {
|
|||||||
navigationController?.containsPage(withPageType: pageType) ?? false
|
navigationController?.containsPage(withPageType: pageType) ?? false
|
||||||
}
|
}
|
||||||
|
|
||||||
public func displayedViewController(_ viewController: UIViewController) {
|
public func willDisplay(_ viewController: UIViewController) {
|
||||||
setupPanels()
|
setupPanels()
|
||||||
updateNavigationBarFor(viewController: viewController)
|
updateNavigationBarFor(viewController: viewController)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -121,6 +121,11 @@ open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol,
|
|||||||
(viewController as? MVMCoreViewManagerViewControllerProtocol)?.managerWillDisappear?(self)
|
(viewController as? MVMCoreViewManagerViewControllerProtocol)?.managerWillDisappear?(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open override func viewWillAppear(_ animated: Bool) {
|
||||||
|
super.viewWillAppear(animated)
|
||||||
|
hideNavigationBarLine(true)
|
||||||
|
}
|
||||||
|
|
||||||
/// Hides/Shows the navigation bar for the page.
|
/// Hides/Shows the navigation bar for the page.
|
||||||
open func hideNavigationBarLine(_ isHidden: Bool) {
|
open func hideNavigationBarLine(_ isHidden: Bool) {
|
||||||
guard self == navigationController?.topViewController else { return }
|
guard self == navigationController?.topViewController else { return }
|
||||||
@ -228,6 +233,7 @@ open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol,
|
|||||||
}
|
}
|
||||||
tabs.selectIndex(index, animated: true)
|
tabs.selectIndex(index, animated: true)
|
||||||
self.index = nil
|
self.index = nil
|
||||||
|
hideNavigationBarLine(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func navigationController(_ navigationController: UINavigationController, willDisplay viewController: UIViewController) {
|
public func navigationController(_ navigationController: UINavigationController, willDisplay viewController: UIViewController) {
|
||||||
@ -262,7 +268,6 @@ open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol,
|
|||||||
if let viewController = getCurrentViewController() {
|
if let viewController = getCurrentViewController() {
|
||||||
manager?.displayedViewController?(viewController)
|
manager?.displayedViewController?(viewController)
|
||||||
}
|
}
|
||||||
hideNavigationBarLine(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - TabsDelegate
|
// MARK: - TabsDelegate
|
||||||
@ -314,11 +319,11 @@ open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol,
|
|||||||
|
|
||||||
public func willDisplay(_ viewController: UIViewController) {
|
public func willDisplay(_ viewController: UIViewController) {
|
||||||
manager?.willDisplay?(viewController)
|
manager?.willDisplay?(viewController)
|
||||||
|
hideNavigationBarLine(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func displayedViewController(_ viewController: UIViewController) {
|
public func displayedViewController(_ viewController: UIViewController) {
|
||||||
manager?.displayedViewController?(viewController)
|
manager?.displayedViewController?(viewController)
|
||||||
hideNavigationBarLine(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - MVMCoreUISwipeNavigationProtocol
|
// MARK: - MVMCoreUISwipeNavigationProtocol
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user