0

我正在开发一个构建您自己的冒险应用程序,带有 2 个按钮,.setTitle每次按下时都会改变它们。我的应用程序已准备就绪 - 一切正常。每当按下按钮时,故事textview就会发生变化,并且我的按钮会显示新的标题。我唯一剩下的就是找到一种方法来保存我的按钮在用户关闭应用后返回时显示的最新标题。

UsingUserDefaults.Standard帮助我保存了这个故事textview,但到目前为止,我还没有找到一种方法来保存.setTitle我的按钮的不断变化的标题 ( )。这就是我设法保存的方法textview

let defaults = UserDefaults.standard
func savePageTopText() {
    defaults.set(storyTextView.text, forKey: "topText")

}

func checkTopPageText() {
    let pageText = defaults.value(forKey: "topText") as? String
    storyTextView.text = pageText
}

savePageTopText()然后我在我的每个按钮上添加了to, checkTopPageText()toviewDidLoad.This是我的按钮标题的编码方式,并且每当按下按钮时它们都会改变:

let answer1a = "Turn left"
let answer1b = "Turn right"
let answer2a = "Keep driving!"
let answer2b = "Pull over!"

@IBAction func buttonPressed(_ sender: UIButton) {
    if sender.tag == 1 && storyIndex == 1 {
        storyTextView.text = story3
        topButton.setTitle(answer3a, for: .normal)
        bottomButton.setTitle(answer3b, for: .normal)                     
        savePageTopText()     
    }
}

我希望我对一切都足够清楚——尽我所能。当用户关闭应用程序时,我如何确保他们返回到与按钮显示的相同和最新的标题?如何使用用户默认值保存按钮 setTitle?

4

1 回答 1

0

您正在正确执行所有操作,例如保存,但在获取时您正在做错误。UserDefaults具有获取数据的类型,例如String, Int,Array等。

所以这里是你如何获取保存的String.

func checkTopPageText() {
    storyTextView.text = defaults.string(forKey: "topText")
}

就像您需要知道正在保存哪些数据,然后只有您可以使用适当的方法获取。

于 2019-11-11T04:16:17.460 回答