Я могу отображать контроллер предупреждений с текстовым полем и правильно получать входные данные текстового поля.
Здесь я хотел сделать две проверки на основе данных текстового поля.1. если в текстовом поле нет текста, и нажмите «Создать», введите предупреждение о названии комнаты в метке.2. если введенный текст совпадает с уже доступной строкой, а затем создайте постукивающий экран, вы уже создали комнату с этим именем, эти снимки экрана показаны ниже.
Здесь возникает проблема, если сначала я не отображаю текстовое оповещение, а затем оповещение о втором совпадении, оба объединяются и отображаются в оповещении, показанном ниже.я не хочу отображать оба одновременно.
Вот мой полный код для отображения контроллера предупреждений ниже.
@IBAction func getAlertBtn(_ sender: Any) {
alertControllerWithTf()
}
var roomTextField: UITextField!
func alertControllerWithTf(){
let dialogMessage = UIAlertController(title: "New Room", message: nil, preferredStyle: .alert)
let Create = UIAlertAction(title: "Create", style: .default, handler: { (action) -> Void in
if let userInput = self.roomTextField!.text {
let label = UILabel(frame: CGRect(x: 0, y: 40, width: 270, height:18))
label.textAlignment = .center
label.textColor = .red
label.font = label.font.withSize(12)
dialogMessage.view.addSubview(label)
label.isHidden = true
if userInput == ""{
label.text = "Please enter room name to create."
label.isHidden = false
self.present(dialogMessage, animated: true, completion: nil)
}else if self.haveSameRoomName(createdRoomName: userInput){
label.text = "You've already created room with this name."
label.isHidden = false
self.present(dialogMessage, animated: true, completion: nil)
}else{
print("Create button success block called do stuff here....")
}
}
})
let cancel = UIAlertAction(title: "Cancel", style: .default) { (action) -> Void in
print("Cancel button tapped")
}
//Add OK and Cancel button to dialog message
dialogMessage.addAction(Create)
dialogMessage.addAction(cancel)
// Add Input TextField to dialog message
dialogMessage.addTextField { (textField) -> Void in
self.roomTextField = textField
self.roomTextField?.placeholder = "Please enter room name"
}
// Present dialog message to user
self.present(dialogMessage, animated: true, completion: nil)
}
func haveSameRoomName(createdRoomName: String) -> Bool{
let allRoomNames = ["FIRST", "SECOND", "THIRD", "FOURTH", "FIFTH","SIXTH"]
if allRoomNames.contains(createdRoomName){
return true
}else{
return false
}
}
Может кто-нибудь подсказать, пожалуйста, я не могу справиться с этими двумя случаями, когда текст ошибки отображается в метке.заранее спасибо.