使用我的按钮的用户默认值保存不同的 setTitle 时遇到问题
Posted
技术标签:
【中文标题】使用我的按钮的用户默认值保存不同的 setTitle 时遇到问题【英文标题】:Trouble saving different setTitle with user defaults for my buttons 【发布时间】:2019-11-11 03:53:42 【问题描述】:我正在开发一个构建你自己的冒险应用程序,它有 2 个按钮,每次按下它们时都会改变它们的.setTitle
。我的应用程序已准备就绪 - 一切正常。每当按下按钮时,故事textview
就会发生变化,并且我的按钮会显示新标题。我唯一剩下的就是找到一种方法来保存我的按钮显示的最新标题
当用户关闭应用后返回应用时。
使用UserDefaults.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()
添加到我的每个按钮中,checkTopPageText()
到viewDidLoad.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?
【问题讨论】:
【参考方案1】:您正在正确执行所有操作,例如保存,但在获取时您正在执行错误。 UserDefaults
具有获取数据的类型,例如 String
、Int
、Array
等。
这里是获取保存的String
的方法。
func checkTopPageText()
storyTextView.text = defaults.string(forKey: "topText")
就像您需要知道正在保存哪些数据,然后只有您可以使用适当的方法获取。
【讨论】:
谢谢你,Sohil- 但你能告诉我如何获取我的按钮的 标题吗? 我的困难在于保存和获取 .setTitle 非常感谢!以上是关于使用我的按钮的用户默认值保存不同的 setTitle 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章