从应用程序内部更改应用程序语言后更改TabBar项目

时间:2019-04-02 05:31:11

标签: ios swift localization uitabbar

我有一个应用程序,并且正在其中更改其语言。 通过更改UIView的外观,可以将语言正确更新到其他屏幕。

Localize.setCurrentLanguage("ar")
        UIView.appearance().semanticContentAttribute = .forceRightToLeft

我无法在我的tabcontrolle r文件中重新获得控制权。 TabBar是自定义创建的。我与awakefromNib()进行了核对,但并非每次都得到启发。是否有任何选项卡栏方法可以让我控制每次出现时的控件,或者有什么方法可以更改选项卡栏项标题的语言?

2 个答案:

答案 0 :(得分:1)

在VC中更改应用程序语言后,创建并调用函数localizeTabBar():

func localizeTabBar() {
    tabBar.items![0].title = "1tab".localized
    tabBar.items![1].title = "2tab".localized
    tabBar.items![2].title = "3tab".localized
    tabBar.items![3].title = "4tab".localized
}

对于.localized,请使用this String Extension

答案 1 :(得分:0)

或者类似的东西:

func localizeTabBar() {
    tabBar.items?.enumerated().forEach{ (index, item)  in
        item.title = "\(index)tab".localized
    }
}

对于 .localized 使用此 String Extension