Мне трудно решить собственную проблему, связанную с segue
.Сценарий должен состоять в том, что когда пользователь нажал backbutton
, он выдаст предупреждение, которое спросит пользователя Вы уверены, что покинете эту страницу? Leave
или Stay
- вариант.Если пользователь нажал Leave
ответ, он вернется к DashBoard
, а если пользователь нажал Stay
, он просто сохранит свой исходный ViewController
.Проблема в том, что segue
автоматически выполняется без проверки условия внутри backbutton
.Я новичок в области быстроты, и все проблемы, с которыми я столкнулся и с которыми сталкиваюсь, являются очень новыми для меня.Как я буду правильно строить свои коды, чтобы соответствовать требованиям backbutton
.Как кнопка выполнит сначала условие, прежде чем она выполнит переход?Надеюсь, ты сможешь мне помочь.Ниже приведены мои коды для справки.Был здесь почти 1 неделю.Спасибо.
executeSegue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDashBoard" {
if let dashBoardVC = segue.destination as? DashBoardViewController {
dashBoardVC.validPincode = validPincode
dashBoardVC.participants = participants
dashBoardVC.event = event
}
}
}
кнопка
@IBAction func backbutton(_ sender: UIButton) {
let alert = SCLAlertView(appearance: confirmationAppearance)
_ = alert.addButton("Leave", action: {
self.dismiss(animated: true, completion: nil)
self.performSegue(withIdentifier: "showDashBoard", sender: sender)
})
_ = alert.addButton("Stay", action: { })
_ = alert.showError("Confirmation", subTitle: "Are you sure you want to leave this page?")
}
при попытке использовать shouldPerformSegue, но яне знаю, как начать
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if identifier == "showDashBoard" {
var segueShouldOccur: Bool!
if segueShouldOccur == false {
print("nope, user wants to stay")
return false
}
else {
self.performSegue(withIdentifier: "showDashBoard", sender: sender)
print("Yep, the user wants to leave")
}
}
return true
}
снимок экрана для раскадровки segue