У меня много элементов пользовательского интерфейса в VC, включая метки, текстовые поля и кнопку. В функции viewDidLoad () большинство элементов пользовательского интерфейса изначально скрыты. Я успешно запрограммировал UIButton на VC для изменения текста метки и свойств заголовка кнопки в зависимости от того, какой вопрос задается. Однако, когда я пытаюсь установить свойство текста для метки или текстового поля, которое ранее было скрыто, оно не отображается. Я видел на веб-сайте Apple dev что-то о представлении hiddenOrHasHiddenAncestor, но не уверен, что это решение. Есть ли легкое решение?
Я попытался создать логическую переменную как var firstQuestionAsked = false, а затем установить для нее значение true в фрагменте кода, когда я хочу, чтобы элементы пользовательского интерфейса отображались снова, и установил код viewDidLoad на оператор if, чтобы, если Bool имеет значение false, элементы скрыты, но это не сработало.
// Это мой код в функции viewDidLoad
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)
}
}
// Это часть моего кода, которая не работает (в кнопке IBAction)
@IBAction func darkButtonPressed (_ отправитель: 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)
}
Строки, которые я установил для элементов пользовательского интерфейса, остаются скрытыми. Я не показывал весь свой код, чтобы избежать избыточности, но в основном любой заполнитель или текстовое свойство, которые были скрыты ранее, не становятся видимыми, когда я этого хочу, и мне нужно, чтобы они отображались для одного из вопросов, как показано в последнем else если заявление.