App语言切换后导航标题仅更新一次的问题求助
问题:切换App语言时导航标题仅更新一次,后续切换不再生效
切换App语言时,导航标题仅会更新一次;再次切换语言时,标题不再更新。有个解决方案虽能生效,但存在将用户跳转至App初始视图的副作用。
以下是相关代码:
struct SettingsView: View { @Environment(LanguageSettings.self) var languageSettings @AppStorage("isDarkMode") private var isDarkMode = false @AppStorage("selectedLanguage") private var selectedLanguage: Language = .turkish var body: some View { NavigationView { VStack(content: { Form { Section(header: Text("Appearance")) { Toggle(isOn: $isDarkMode) { Text("Dark Mode") } } Section(header: Text("Language")) { Picker("Language", selection: $selectedLanguage) { ForEach(Array(Language.allCases), id: \ .self) { language in Text("\(flag(for: language.flagId)) " + language.languageString) } } .onChange(of: selectedLanguage){ languageSettings.language = selectedLanguage } } Section(header: Text("Share")) { Button(action: shareApplication) { HStack { Image(systemName: "square.and.arrow.up") Text("Share Application") } } } Section(header: Text("Version")) { Text("1.1.4") } } }) .navigationTitle("Settings") } } }
相关界面截图:
内容的提问来源于stack exchange,提问作者Bulut Öztemur
相关产品推荐
相关产品推荐

