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