Swift UIAlertController每行触发一次选择文本域编辑

时间:2016-04-05 03:17:37

标签: swift uialertcontroller

我有一个UIPickerView,在selectedRowInComponent中有一个if语句,用于检查textField的值。如果用户在文本字段中输入的数字大于10,则会调用警报。一切都运行良好,除了我想在选择行并编辑字段后只发出一次警报。就目前而言,每次使用大于10的值更新/编辑字段时都会调用警报。初始警报就足够了。关于如何实现这一目标的任何提示?谢谢!

if (inputField.text! as NSString).doubleValue > 10 {

                SweetAlert().showAlert("Number is greater than 10", subTitle: "Please select number less than 10", style: AlertStyle.CustomImag(imageFile: "alertimage.png"))
            }

2 个答案:

答案 0 :(得分:1)

快速而肮脏:

在viewController中创建一个公共可用的bool变量,并使用false初始化它(让我们调用变量' alertAlreadyShown')

然后在pickerView方法

中创建一个关于bool的if语句
       if (inputField.text! as NSString).doubleValue > 10 {
            if (alertAlreadyShown == false) {
                    SweetAlert().showAlert(...)
                    alertAlreadyShown = true
            }
       }

但是不要忘记在适当的时候重置bool以再次启用警报

答案 1 :(得分:0)

有两种方法可以解决这个问题。一个人(在我看来,用户最友好)只在你的选择器视图中显示少于10的值。另一种选择是设置是否已显示警报的bool,并将其作为检查添加到if语句中。