Изменить значение в viewController на основе его индекса панели вкладок - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь представить viewController, нажимая элемент на экране. Проблема, с которой я сталкиваюсь, заключается в том, что при нажатии этого элемента мне нужно держать вкладку внизу. Когда элемент нажимается, он переключается на viewController на основе индекса этого viewController из tabBar. Вот как это работает в настоящее время:

  func getControllerAtIndex (to tab: PrimaryFeatureTab) -> UIViewController? {
         selectedIndex = tab.displayOrder//this is an enum to set index 
        return selectedViewController
    }

    func navigateToMap() {
        selectedIndex = PrimaryFeatureTab.map.displayOrder
    }

Вот как я пытаюсь установить значение в viewController на основе индекса вкладки, пользовательский тип UIViewController имеет MapViewController, и мы хотим переключить bool "isMapEnabled" в true

if let campusMap = mainTabController.getControllerAtIndex(to: .map) {
            if currentMap.isKind(of: MapViewController.self) {
                currentMap.isMapEnabled. //error here: Value of type 'UIViewController' has no member 'isMapEnabled'
                  mainTabController.navigateToCampus()
            }
        }

Есть идеи о том, как перейти к MapViewController с сохранением присутствия tabBar и переключением логического значения?

...