Swift 4 隐藏按钮不再出现

标签 swift xcode swift4 uipickerview xcode9

这是对我之前的问题 here 的跟进.我能够让按钮隐藏得很好,但是当我选择大学教育选项时它们不会重新出现。这是我的代码:

@IBOutlet weak var eduField: UITextField!   
var education = ["Middle School Education", "High School Education", "College Education"]   
var eduPicker = UIPickerView()

@IBOutlet weak var associate: UIButton!

@IBOutlet weak var bachelor: UIButton!

@IBOutlet weak var master: UIButton!
override func viewDidLoad() {
    super.viewDidLoad()
    eduPicker.delegate = self
    eduPicker.dataSource = self
    eduField.inputView = eduPicker

    if eduField.text == "College Education"{
      associate.isHidden = false
      bachelor.isHidden = false
      master.isHidden = false
    }
    else{
      associate.isHidden = true
      bachelor.isHidden = true
      master.isHidden = true
  }
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return education.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    eduField.text = education[row]
    eduField.resignFirstResponder()
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return education[row]
    }
}

我知道我的代码是部分正确的,因为这些按钮隐藏或出现是我将 else 中的值从 false 更改为 true 但我想我不完全理解这些值是如何存储在 viewpicker 中的,因为我的代码显然没有'识别我告诉它的值(value)观。我觉得在二十四小时内两次问大致相同的问题真的很愚蠢,但这让我发疯。有人可以帮帮我吗?

最佳答案

看起来您没有更新按钮状态。

我建议采用如下方法:

func updateButtonsVisibility() {
    if eduField.text == "College Education"{
      associate.isHidden = false
      bachelor.isHidden = false
      master.isHidden = false
   } else {
       associate.isHidden = true
       bachelor.isHidden = true
       master.isHidden = true
   }
}

然后在 viewDidLoad()func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 结束时调用相同的方法>.

关于Swift 4 隐藏按钮不再出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49962341/

相关文章:

xcode - Xcode "Build Rules"是做什么的?

c++ - 为什么很难找到 C++ 3d 游戏教程

swift - swift 从通用对象中获取 element.type

ios - NSMutableAttributedString具有不同的字体

ios - 如何在 self.dismiss block 中推送 UIViewController?

xcode - 如何确定 OS X dylib 是否与 -flat_namespace 链接

ios - 如何在 Swift 4 中通过 POST 请求发送图像?

swift - 验证按钮单击并更改 Controller View iOS

xcode - App Transport Security 策略要求使用安全连接

导航栏中的 iOS 搜索栏