На вкладке по умолчанию не отображается первая выбранная вкладка - PullRequest
0 голосов
/ 11 апреля 2019

Я использовал пользовательскую панель UITabbar для своего приложения, поскольку моему приложению требуется контроллер вида вместо контроллера uitabbar. В этом я показал оба viewcontroller, добавив и удалив второй viewcontroller как подпредставление. Пока это хорошо, но элемент панели вкладок не показывает первый элемент панели вкладок в подсвеченном состоянии. Вместо этого после выбора второго элемента панели вкладок (из этого элементы панели вкладок показывает выделение.) Следует выделение цветом.

Итак, я попробовал одно решение: я добавил переменную bool "selected" в качестве атрибута, определяемого пользователем, что также не удалось, поскольку первый элемент панели вкладок все еще подсвечивается даже после выбора второй панели вкладок.

Могу ли я узнать любую другую альтернативу, чтобы показать подсветку вкладки по умолчанию при загрузке представления.

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem){
        switch item.tag {
        case 1:
            if sampleTwo == nil {
                var storyboard = UIStoryboard(name: "Main", bundle: nil)
                sampleTwo = storyboard.instantiateViewController(withIdentifier: "liveeventsVC") as! LiveEventsViewController
            }
            sampleTwo?.view.removeFromSuperview()

            sampleTwo?.removeFromParentViewController()
            break
        case 2:
            if sampleTwo == nil {
                var storyboard = UIStoryboard(name: "Main", bundle: nil)
                sampleTwo = storyboard.instantiateViewController(withIdentifier: "liveeventsVC") as! LiveEventsViewController
            }
            self.view.insertSubview(sampleTwo!.view!, belowSubview: self.bidLiveTabbar)

            self.addChildViewController(sampleTwo!)
            break
        default:
            break
        }
    }

Как показать вкладку по умолчанию, выбранную при загрузке экрана, которая тоже в пользовательской вкладке?

1 Ответ

0 голосов
/ 11 апреля 2019
IBOutlet weak var tabBar:UITabBar!//and connect this property to the UITabBar in Interface Builder


override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated)      

    if let items = tabBar!.items  {
            for item in items {
                if item.title == "My Tab Title" {
                    tabBar.selectedItem = item;
                }
            }
        }     
}

Это работает, если все вкладки имеют уникальный заголовок, как это обычно бывает.

...