с shouldPerforSegue()
func Я могу проверить некоторые поля перед тем, как нарисовать, но мне нужно, чтобы продолжить с помощью segue, даже если поля были плохими в то время инициирования segue.Как продолжить segue после проверки полей с shouldPerformSegue() в Swift
Прямо сейчас, когда пользователь нажимает кнопку, которая запускает segue, я проверяю, загружены ли изображения на сервер. Я показываю индикатор выполнения вместе с предупреждением, чтобы указать% слева. Однако прямо сейчас, когда изображение загружается на сервер, индикатор выполнения показывает 100%. Мне все еще нужно вручную щелкнуть «ok» и снова нажать кнопку seguing. Я пытаюсь понять, есть ли способ обойти это препятствие, просто продолжая сце.
Я попытался программным образом запустить кнопку segue после загрузки изображения, но он не работает должным образом.
UIApplication.shared.sendAction(self.saveButton.action!, to: self.saveButton.target, from: nil, for: nil)
Функция у меня есть, что проверки для проверки:
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if ((sender as? UIBarButtonItem) != nil) && uploadingImagesToFirebase {
// Create the alert controller
let alertController = UIAlertController(title: "Uploading Images...", message: "", preferredStyle: .alert)
// Create an ok button
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in
print("OK")
}
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: {
// Add your progressbar after alert is shown (and measured)
let rect = CGRect(x: alertController.view.frame.width * 0.10, y: alertController.view.frame.height/2, width: alertController.view.frame.width * 0.80, height: 100)
self.progressView = UIProgressView(frame: rect)
alertController.view.addSubview(self.progressView!)
})
return false
}
return true
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// If user clicks on a job cell
if segue.identifier == "showJobDetails" {
...
}
else if addJobButton == sender as? UIButton {
print("Adding a new job from customer view")
...
}
// If save button was choice selected by user
else if segue.identifier == "identifier {
customer.firstName = firstNameTextField.text
customer.middleName = middleNameTextField.text
customer.lastName = lastNameTextField.text
customer.address = addressTextField.text
customer.email = emailTextField.text
customer.phone = phoneTextField.text
customer.jobs = customerJobs
updateCustomerValuesInFirebase()
updateJobValuesInFirebase()
}
}
Пусть 'performSegue()' будет первым шагом, после выполнения вы выполните проверку 'shouldPerformSegue()'. Кроме того, 'performSegue()' является заменой 'present' или 'push'. –
Как бы я это делал, если segue - это выход segue? –
Я не понимаю, что вы подразумеваете под выходом segue? –