 
         public var tag: String
         public var view: UIView
-        public var delegate: TabBarViewItemDelegate?
-
-        public init(tag: String, view: UIView, delegate: TabBarViewItemDelegate? = nil) {
+        public var delegate: TabBarViewTabDelegate?
+
+        public init(tag: String, view: UIView, delegate: TabBarViewTabDelegate? = nil) {
             self.tag = tag
             self.view = view
-            self.delegate = delegate ?? (view as? TabBarViewItemDelegate)
+            self.delegate = delegate ?? (view as? TabBarViewTabDelegate)
         }
 
         // MARK: Hashable conformance


        let indicateSelected = { (manager: TabManager?, selected: Bool) in
            guard let manager = manager else { return }
            manager.tab.delegate?.tabBarView(self, tab: manager.tab, shouldIndicateSelected: selected)
        }

        indicateSelected(currentTabManager, false)


// MARK: - TabBarViewItemDelegate

public protocol TabBarViewTabDelegate {

    func tabBarView(_ tabBarView: TabBarView, shouldIndicate tab: TabBarView.Tab, isSelected selected: Bool)
}
