gpt4 book ai didi

ios - UserDefault 保存按钮状态

转载 作者:搜寻专家 更新时间:2023-11-01 05:56:10 24 4
gpt4 key购买 nike

我正在尝试通过保存状态来完成我最喜欢的按钮,即使我退出 View \App 也是如此。如果有人能告诉我我该怎么做就太好了为此,我正在使用 Xcode 8 并使用 Swift 3 进行编码。

  //create a new button
let Favoritebutton: UIButton = UIButton(type: UIButtonType.custom)
//set image for button
Favoritebutton.setImage(UIImage(named: "EmptyHeart.png"), for: .normal)
Favoritebutton.setImage(UIImage(named: "FilledHeart.png"), for: .selected)
//add function for button
Favoritebutton.addTarget(self, action: #selector(self.button), for: .touchUpInside)
//set frame
Favoritebutton.frame = CGRect(x:0,y: 0,width: 35,height: 35)

Favoritebutton.isSelected = UserDefaults.standard.bool(forKey: "isSaved")

let barButton = UIBarButtonItem(customView: Favoritebutton)
//assign button to navigationbar

self.navigationItem.rightBarButtonItem = barButton

let state = UserDefaults.standard.bool(forKey: "isSaved") ?? false

}


@IBAction func button(sender: UIButton) {

sender.isSelected = !sender.isSelected
if let Favoritebutton = sender as? UIButton {
Favoritebutton.isSelected = UserDefaults.standard.bool(forKey: "isSaved")
if Favoritebutton.isSelected {
// set selected
Favoritebutton.isSelected = true



// set badge Value to tabbar item.
let tabItem = self.tabBarController?.tabBar.items![3]
sel_val = tabItem?.badgeValue
if(sel_val == nil){
sel_val = "0"
}
let sel_num = Int(sel_val!)
tabItem!.badgeValue = String(format: "%d", sel_num! + 1) as String
//Add Favorite
let Fav: NSMutableArray = []
Fav.add(barImage)
Fav.add(barName)
Fav.add(streetName)
favorite.add(Fav)




} else {
// set deselected
Favoritebutton.isSelected = false
//Badge Value Count.
let tabItem = self.tabBarController?.tabBar.items![3]
sel_val = tabItem?.badgeValue
if(sel_val == nil){
sel_val = "0"
}
let sel_num = Int(sel_val!)
tabItem!.badgeValue = String(format: "%d", sel_num! - 1) as String
//Remove Favorite
let Fav: NSMutableArray = []
Fav.add(barImage)
Fav.add(barName)
Fav.add(streetName)
favorite.remove(Fav)


}
}

最佳答案

可以将button中的代码缩减为

@IBAction func button(sender: UIButton) {

sender.isSelected = !sender.isSelected
UserDefaults.standard.set(sender.isSelected, forKey: "isSaved")
}

要设置状态,你必须读回它

let Favoritebutton = UIButton(type: UIButtonType.custom)
//set image for button
Favoritebutton.setImage(UIImage(named: "EmptyHeart.png"), for: .normal)
Favoritebutton.setImage(UIImage(named: "FilledHeart.png"), for: .selected)
Favoritebutton.isSelected = UserDefaults.standard.bool(forKey: "isSaved")
...

编辑:

我不知道你的代码做了什么,但是有很多冗余代码。 IBAction 可以简化为(当然未经测试)

@IBAction func button(sender: UIButton) {

let newValue = !sender.isSelected
sender.isSelected = newValue
UserDefaults.standard.set(newValue, forKey: "isSaved")

let tabItem = self.tabBarController?.tabBar.items![3]
sel_val = tabItem?.badgeValue
if(sel_val == nil){
sel_val = "0"
}
let sel_num = Int(sel_val!)

let fav: NSMutableArray = []
fav.add(barImage)
fav.add(barName)
fav.add(streetName)
if sender.isSelected {
tabItem!.badgeValue = String(format: "%d", sel_num! + 1)
favorite.add(fav)
} else {
tabItem!.badgeValue = String(format: "%d", sel_num! - 1)
favorite.remove(fav)
}
}

并请以小写字母开头的变量命名。

关于ios - UserDefault 保存按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43429699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com