在segue放松之前如何进行状态检查

时间:2015-03-16 04:25:23

标签: ios swift

VC1转到VC3,其中有一个小键盘,并且可接受的预定最低数字输入到标签中。用户可以在此字符串的末尾添加数字或删除数字。当"接受"按下键,string.toInt()传递给VC1,segue通过

展开
@IBAction func unwindToSegue(segue: UIStoryboardSegue, sender:UIStoryboardSegue){
    BetLabels[betSourceR].text = BetReturned
    if BetReturned == ""{} else{
        Chip[betSourceR].hidden = false}}

我需要实现,以便不接受低于最小值的string.toInt()以及某种覆盖功能,该功能会在向用户发出不允许此输入的警告时停止发生展开。

我将如何实现这一目标?  也许在VC3 func prepareForsegue中放置一些东西?还是另一种方法?

或者我可以断开"接受"从展开,并制作一个IBAction,如果在最小{警告用户,返回VC3}否则{VC1.unwindToSegue}

2 个答案:

答案 0 :(得分:2)

要实现此目的,请将Controller的{​​{1}}连接到自己的退出处,然后选择展开操作。

将此exit-segue设为VC3“您的退出文本”

仍在segue.identifier,为“接受”按钮创建VC3

IBAction

答案 1 :(得分:1)

我在这篇SO here中找到了一个很好的答案。

诀窍是在VC3中覆盖 shouldPerformSegueWithIdentifier 。在其中,您可以进行条件检查并返回false,以防segue停止。否则,返回true以使segue发生。以下是您案例的示例代码。

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