UITabBarController с использованием нескольких раскадровок - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю над рефакторингом моей огромной раскадровки на несколько раскадровок. Во время процесса я изо всех сил пытаюсь заставить изображение панели вкладок показываться.

class CustomTabBarController: UITabBarController{

    @IBOutlet weak var myTabBar: UITabBar?

    override func viewDidLoad() {
        super.viewDidLoad()
        setTabBarItems()
    }

    func setTabBarItems(){
        guard let tabBar1 = self.tabBar.items?[0] else { return }
        let myTabBarItem1 = tabBar1 as UITabBarItem
        myTabBarItem1.image = UIImage(named: "1-tab-bar-unselected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem1.selectedImage = UIImage(named: "1-tab-bar-selected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem1.title = ""
        guard let tabBar2 = self.tabBar.items?[1] else { return }
        let myTabBarItem2 = tabBar2 as UITabBarItem
        myTabBarItem2.image = UIImage(named: "2-tab-bar-unselected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem2.selectedImage = UIImage(named: "2-tab-bar-selected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem2.title = ""
        guard let tabBar3 = self.tabBar.items?[2] else { return }
        let myTabBarItem3 = tabBar3 as UITabBarItem
        myTabBarItem3.image = UIImage(named: "3")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem3.selectedImage = UIImage(named: "3-tab-bar-selected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem3.title = ""
        guard let tabBar4 = self.tabBar.items?[3] else { return }
        let myTabBarItem4 = tabBar4 as UITabBarItem
        myTabBarItem4.image = UIImage(named: "4-tab-bar-unselected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem4.selectedImage = UIImage(named: "4-tab-bar-selected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem4.title = ""
        guard let tabBar5 = self.tabBar.items?[4] else { return }
        let myTabBarItem5 = tabBar5 as UITabBarItem
        myTabBarItem5.image = UIImage(named: "5-tab-bar-unselected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem5.selectedImage = UIImage(named: "5-tab-bar-selected")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
        myTabBarItem5.title = ""
    }
}

Это то, что я имел раньше и работал. В настоящее время он не показывает какие-либо элементы изображения только «Элементы». Я добавил элемент панели вкладок в контроллер представления навигации.

Что я пробовал
・ Instantiated V C из UITabBarController
・ установить элемент навигации в контроллере вида навигации настроек, это работает, но панель вкладок пуста при запуске приложения.

Любая помощь приветствуется

enter image description here

1 Ответ

0 голосов
/ 22 апреля 2020
class CustomTabBarController: UITabBarController{
override func viewDidLoad() {
       self.viewControllers![3].title = "Your Title" //This for title
       self.tabBar.items?[0].image = UIImage(named: "YourImageName")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal) // This for image

}

Когда ваше изображение не приходит, это значит, что ваш размер изображения не правильный, потому что я столкнулся с той же проблемой. Изображение может иметь слишком большой размер для отображения. Изображения элементов панели вкладок должны иметь размер около 28pt-32pt (пикселей).

...