Swift - 如何隐藏标签,然后按下按钮使它永久显示?

问题描述:

我试图让标签从隐藏处开始,然后在按下按钮之后,即使注销/重新启动应用程序后,标签也会永久显示。现在它显示在我单击按钮后,但在注销/重新启动后变为隐藏。这里是我的代码:Swift - 如何隐藏标签,然后按下按钮使它永久显示?

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    hidePercent() 
} 

var didTapOptionsButtonForCell: ((YourPollsCell) -> Void)? 

override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 

    let percentColor = UIColor(red: 115/255, green: 21/255, blue: 54/255, alpha: 1.0).cgColor 
    pollText1Percent.layer.borderColor = percentColor 
    pollText1Percent.layer.borderWidth = 2 
    pollText2Percent.layer.borderColor = percentColor 
    pollText2Percent.layer.borderWidth = 2 
} 

func hidePercent() { 
    pollText1Percent.isHidden = true 
    pollText2Percent.isHidden = true 
} 

@IBAction func reportButtonTapped(_ sender: UIButton) { 
    didTapOptionsButtonForCell?(self) 
} 

@IBAction func pollText1ButtonTapped(_ sender: UIButton) { 
    delegate?.didTapVoteButton(sender, pollNum: 1, on: self) 

    pollText1Percent.isHidden = false 
    pollText2Percent.isHidden = false 
} 

@IBAction func pollText2ButtonTapped(_ sender: UIButton) { 
    delegate?.didTapVoteButton(sender, pollNum: 2, on: self) 

    pollText1Percent.isHidden = false 
    pollText2Percent.isHidden = false 
} 

你可以当按钮被窃听的值添加到UserDefaults。

UserDefaults.standard.set(value: true, forKey: "specialButtonWasTapped") 

然后在应用程序启动并设置isHidden属性时在控制器中检查此值。

if let wasTapped = UserDefaults.standard.value(forKey: "specialButtonWasTapped") { 
    specialLabel.isHidden = !wasTapped // false 
} 
else { 
    specialLabel.isHidden = true 
} 

还是要清理这个想法

UserDefaults.standard.set(value: false, forKey: "labelShouldBeHidden") 

然后你可以只设置是否隐藏属性与零合并运算

specialLabel.isHidden = (UserDefaults.standard.value(forKey: "labelShouldBeHidden") as? Bool) ?? true 
+0

这篇帮助呢?你最终如何解决? – Yarn