VC1
segues to VC3
which has a keypad and predetermined lowest number acceptable entered into a label. User can either add a number to the end of th
I found a good answer in this SO post here.
The trick is to override shouldPerformSegueWithIdentifier in VC3. Inside it, you can place your condition check and return false in case the segue should be stopped. Otherwise, return true to make the segue happen. Here is a sample code for your case.
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
if identifier == "submitUnwindSegue"{
if string.toInt() < minimum {
//fire an alert controller about the error
return false
}
}
//Continue with the segue
return true
To achieve this, connect Controller
of VC3
to its own exit and select the unwind action.
Give this exit-segue a segue.identifier
"YOUR EXIT TEXT"
Still in VC3
, create an IBAction
for the "Accept" button.
@IBAction func accept(sender: AnyObject) {
if //Condition X is true
{performSegueWithIdentifier("YOUR EXIT TEXT", sender: self)}
else {
//Do this
}