【发布时间】:2017-07-22 15:49:29
【问题描述】:
我有一个名为 langSeg 的 UISegmentedControl,它有两个标记为 [English & German] 的索引,它使用以下代码控制我的应用程序中标签的语言:
@IBAction func indexChanged(sender: UISegmentedControl) {
switch langSeg.selectedSegmentIndex
{
case 0:
let language = "en"
let path = Bundle.main.path(forResource: language, ofType: "lproj")
let bundle = Bundle(path: path!)
headerLbl.text = bundle?.localizedString(forKey: "HLbl", value: nil, table: nil)
UserDefaults.standard.set(["en"], forKey: "AppleLanguages")
case 1:
let language = "de"
let path = Bundle.main.path(forResource: language, ofType: "lproj")
let bundle = Bundle(path: path!)
descLbl.text = bundle?.localizedString(forKey: "DLbl", value: nil, table: nil)
UserDefaults.standard.set(["de"], forKey: "AppleLanguages")
default:
break;
}
}
在英语和德语之间切换并保存用户的选择;此代码工作正常,但是当我将语言更改为德语后重新启动我的应用程序时,标签标题以德语保存,但 segmentedControl 状态更改回英文标题 [索引 0]。 请,我需要帮助来保存用户对 UISegmentedControl 的选择,非常感谢任何帮助。 我试过这段代码:
langSeg.selectedSegmentIndex = sender.selectedSegmentIndex
UserDefaults.standard.integer(forKey: "SegmentIndex")
里面
@IBAction func indexChanged(sender: UISegmentedControl)
切换括号后,可惜没用……
【问题讨论】:
标签: ios swift3 nsuserdefaults xcode8 uisegmentedcontrol