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
}