         }
     }
     
-    fileprivate func _toggleShowingOfNavigationBackItem(shows: Bool, animated: Bool) {
+    internal func _toggleShowingOfNavigationBackItem(shows: Bool, duration: TimeInterval = 0.5, animated: Bool) {
         if let _horizontal = _horizontalConstraintOfBackItem {
             removeConstraint(_horizontal)
         }


extension TabNavigationBar {
    public typealias TabNavigationItemViews = (itemsContainerView: UIView, itemsScrollView: UIScrollView, itemsView: UIView)
    public typealias TabNavigationTitleItemViews = (itemsScrollView: UIScrollView, itemsView: UIView, alignmentContentView: UIView)
    public typealias TabNavigationTitleItemAnimationParameters = (containerView: UIView, fromItemViews: TabNavigationTitleItemViews, toItemViews: TabNavigationTitleItemViews)
}

public class TabNavigationBar: UIView, UIBarPositioning {

        return (itemsScrollView, itemsView, alignmentContentView)
    }
    
    fileprivate func _setNavigationTitleItems(_ items: [TabNavigationTitleItem], animated: Bool = false, selectedIndex index: Array<TabNavigationTitleItem>.Index = 0, actionConfig: (ignore: Bool, actions: [TabNavigationTitleActionItem]?) = (false, nil), animation: ((TabNavigationTitleItemAnimationViews) -> Void)? = nil) {
        guard animated else {
            // Remove all the former title items.
            while _navigationTitleItems.last != nil {
