Простое решение, рекомендуется проверять условие непосредственно перед вызовом performSegue
@IBAction func goTo2(_ sender: UIButton) {
guard !textField1.text!.isEmpty else { return }
performSegue(withIdentifier: "segueTo2", sender: self)
}
Метод делегата на самом деле предназначен только для жестко связанных сегментов, так что вы можете удалить его
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
let str: String? = textField1.text
if str!.isEmpty {
print ("text field is empty. Do not do the segue")
return false
}
else {
return true
}
}