ios - 如何刷新每个 View 的多语言控件

标签 ios objective-c swift

我需要在应用内进行多种语言切换

  1. 切换语言后需要保持在当前 View

  2. 我的整个应用程序 UI 需要更新才能看到替换的语言

我发现很多人的做法是重置 Root View ,也就是说要重新创建 View ,数据需要重新请求等等

我认为这是非常不合理的

你不使用Notification,还有其他方法吗?

如果有有效的链接和演示引用就更好了

非常感谢

最佳答案

我不确定你的应用程序是如何工作的,但你为什么不尝试这样的事情:

func updateLanguage() {}

您可以使用词典来帮助您轻松更新内容。我做了一个简单的例子,以便您可以理解我在说什么:

enum Languages {
    case english
    case portuguese
}

var myLabel = UILabel()

let myLabelText : [Languages : String] = [
    Languages.english : "My Label",
    Languages.portuguese : "Minha Etiqueta"
]

func updateLanguage(to language : Languages) {
    // Updates myLabel's text in real time:
    myLabel.text = myLabelText[language]
    // Update other UI elements below...
}

每当您调用“updateLanguage”方法时,您的 UI 元素都会实时更改其文本值,无需重新加载任何内容或使用其他“黑客”,这非常简单明了,我的应用程序上有这种方法,而且它确实有效。

希望有帮助!

关于ios - 如何刷新每个 View 的多语言控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027220/

相关文章:

iphone - 如何从录制的视频中获取帧作为图像 -AVFoundation(图像作为缩略图)

swift - 单击按钮将移动到下一个 Controller ?

ios - 更改图片大小后,图片透明部分变黑

ios - Reachability reachable和unreachableBlock被多次调用?

objective-c - 您希望 2 年前就知道哪些 Cocoa/Core Foundation 辅助函数?

ios - 应用内购买恢复

swift - PromiseKit - 返回嵌套的 promise

ios - 从静态方法更新 UI TableView

iphone - SSCollectionView 边距/间距

ios - 强制 UISplitViewController 始终(仅)横向显示 master(在 iPhone 6 Plus 上)