UIAlertController在短时间后自动消失

时间:2016-11-22 06:39:33

标签: swift uialertview uistoryboardsegue

如果文本字段为空,我想提醒UIAlertController提醒一下,必须在文本字段中填写一些内容。现在我有以下代码:

@IBAction func saveDetails(segue: UIStoryboardSegue) {

    let dController = segue.source as? EntryTableViewController

    if let text = dController?.bezeichnungTextField.text, text.isEmpty {

        let alert = UIAlertController(title: "No description", message: "Please fill out description", preferredStyle: .alert)

        let cancelAction = UIAlertAction(title: "OK", style: .default)

        alert.addAction(cancelAction)
        self.present(alert, animated: true, completion: nil)

    }else {

    guard let menge = dController?.mengeTextField.text, let bezeichnung = dController?.bezeichnungTextField.text, let kategorie = dController?.categoryButtonOutlet.titleLabel?.text else {return}

    self.saveItem(menge: menge, bezeichnung: bezeichnung, kategorie: kategorie)
    self.tableView.reloadData()
    }
}

现在实际上当我按下按钮返回第一个控制器时它会起作用。但是UIAlertController只会在很短的时间内出现,然后会自动消失。我的代码中是否有错误,或者无法在UIAlertController上拨打unwind segue

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您只需显示警报控制器,然后立即放松。解决方案是在展开之前检查空文本字段。

为您的按钮制作IBAction,然后检查文本字段是否为空,然后以编程方式执行您的segue。