I have many UI elements on a VC including labels, textfields, and a button. In the viewDidLoad() function, most of the UI elements are initially hidden. I have successfully programmed the UIButton on the VC to change the label text and button title properties depending on what question is being asked. However, when I try to set a text property for a label or textfield that was previously hidden, it does not show back up. I saw on the apple dev website something about a hiddenOrHasHiddenAncestor view but am not sure if that's the solution. Is there an easy fix to this?
I tried creating a Boolean variable as var firstQuestionAsked = false and then setting it to true in the chunk of code when I want the UI elements to show again and setting the viewDidLoad code to an if-statement so that if the Bool is false, the elements are hidden but that didn't work.
// This is my code in the viewDidLoad function
override func viewDidLoad() {
super.viewDidLoad()
aboveTopTextPrompt.text = aboveTopPrompt1
topTextfield.placeholder = "Ex: 2.98"
besideTopTextLabel.isHidden = true
underTopTextLabel.isHidden = true
aboveBottomTextPrompt.isHidden = true
bottomTextfield.isHidden = true
underBottomTextLabel.isHidden = true
bottomFloatingLabel.isHidden = true
darkButton.setTitle(nextTitle, for: .normal)
}
}
// This is the portion of my code that is not working (in the button IBAction)
@IBAction func darkButtonPressed(_ sender: UIButton) {
if aboveTopPromptIndex == 1 {
aboveTopTextPrompt.text = aboveTopPrompt2
topTextfield.placeholder = "Ex: 76.00"
besideTopTextLabel.isHidden = true
underTopTextLabel.text = "string"
aboveBottomTextPrompt.text = "string"
bottomTextfield.isHidden = true
underBottomTextLabel.isHidden = true
bottomFloatingLabel.isHidden = true
darkButton.setTitle(nextTitle, for: .normal)
aboveTopPromptIndex = 2
} else if aboveTopPromptIndex == 2 {
performSegue(withIdentifier: "darkViewToABC", sender: self)
} else if (aboveTopPromptIndex == 5 || aboveTopPromptIndex == 6 {
aboveTopPromptIndex = 7
aboveTopTextPrompt.text = aboveTopPrompt7
topTextfield.placeholder = "string"
besideTopTextLabel.text = "string"
underTopTextLabel.text = "string"
aboveBottomTextPrompt.text = "string"
bottomTextfield.placeholder = "string"
underBottomTextLabel.text = "string"
bottomFloatingLabel.text = "string"
darkButton.setTitle(calculateTitle, for: .normal)
}
The strings I set for the UI elements remain hidden. I did not show all of my code to avoid redundancy but basically, any placeholder or text property that was hidden previously does not become visible when I want it to and I do need them to show for one of the questions as shown in the last else if statement.