2016-11-22 3 views
0

텍스트 필드가 비어 있다면 UIAlertController에 텍스트 필드에 내용을 입력해야한다는 것을 알려 드리고자합니다. 이제 다음과 같은 코드가 있습니다 :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은 매우 짧은 순간 만 나타나고 자동으로 사라집니다. 코드에 실수가 있습니까? 아니면 unwind segueUIAlertController으로 전화 할 수 있습니까?

당신은 그냥 경고 컨트롤러를 표시하고 즉시 긴장을 풀고 당신의 도움이

답변

1

주셔서 감사합니다. 해결 방법은 풀기 전에 빈 텍스트 필드를 확인하는 것입니다.

버튼에 IBAction을 입력하고 비어있는 경우 텍스트 필드를 확인한 다음 프로그래밍 방식으로 부분을 처리하십시오.

+0

첫 번째 viewcontroller로 돌아가려면 내 segue를 풀어야합니다. IBAction에서 프로그래밍 방식으로 긴장을 푸는 방법을 설정하려면 어떻게해야합니까? – Mikey

+0

버튼에 IBAction이 있어야하고 그 기능 안에서 텍스트 필드를 확인한 다음'performSegue (withIdentifier : "unwindSegue", sender : nil) 명령을 사용하여 segue를 수행해야합니다. [This (https : //www.andrewcbancroft .com/2015/12/18/working-with-unwind-segues- 프로그래밍 방식의 신속한 방법) 튜토리얼에서는이를 수행하는 방법을 정확하게 보여줍니다. 희망이 도움이 – gasho

+0

당신은 내 하루 했어, 많이 고마워. – Mikey