Функция isEnabled UIButton не работает - PullRequest
1 голос
/ 27 сентября 2019

Я сейчас работаю над проектом ios.

Моя проблема isEnabled Функция не работает.Установка значения True работает успешно, но изменения на False не меняются.

Чего мне не хватает?

Мой код использует Swift5

    @IBAction func nextScreen(_ sender: UIButton) {
        if self.nickField.text!.count > 12 {
            callAlert("long nick")
        } else {
    let url: URL = URL(string: globalUrl.apiAddress)!

            var dict = [String: String]()
            dict["nickname"] = self.nickField.text!
            sender.isEnabled = true
            do {
                try globalUrl.post(url: url, dict, encoding: .utf8, completionHandler: { data, response, error in
                    guard error == nil && data != nil else {
                        if let err = error {
                            print(err.localizedDescription)
                        }
                        return
                    }

                    do {
                        let json = try JSONSerialization.jsonObject(with: data!, options: [])
                        Log.Debug(json)
                        guard let jsonArray = json as? [String: Any] else {
                            return
                        }

                        if jsonArray["result"] == "Sucess" {
                            Log.Debug("Success")
                            DispatchQueue.main.async {
                                globalnickname = self.nickField.text!
                                sender.isEnabled = false
                                self.performSegue(withIdentifier: "go", sender: self)
                            }
                        } else {
                            DispatchQueue.main.async {
                                Toast(text:"error").show()
                                sender.isEnabled = false
                            }
                        }
                    } catch {
                        Log.Error(error)
                    }
                })
            } catch {
                Log.Error(error)
            }

        }

Как видно из моего кода, функция изменена на true, когда оно выполнено, и False, когда оно выполнено.Но это не меняется на False.Проблем не найдено.Пожалуйста, предложите решение

Ответы [ 3 ]

0 голосов
/ 27 сентября 2019

Пожалуйста, проверьте ваш код, isEnabled должно отлично работать.Попробуйте сделать это в отдельном примере без какой-либо бизнес-логики.

Или, может быть, поделитесь полным кодом, в противном случае мы можем просто догадаться, прочитав ваш фрагмент.

Кстати, иногда чистка проекта может быть мне чудесно полезна ..

enter image description here

0 голосов
/ 27 сентября 2019

Пожалуйста, создайте выход кнопки и сделайте button.isEnable false.Должно работать нормально.

0 голосов
/ 27 сентября 2019

Привет, ваш код был идеальным, никаких проблем,

Пожалуйста, замените sender.isEnabled на sender.isUserInteractionEnabled = false Я думаю, что оба используют одно и то же свойство,

Я тестирую в моем фиктивном проекте, оба работают одинаковопопробуйте один раз @ thankyou

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...