IOS7,Segue和storyboards - 如何在没有按钮的情况下创建?

时间:2014-01-18 14:34:50

标签: ios segue xcode-storyboard

我目前有一个登录View和一个Application视图,我已经在登录视图上成功实现了验证,我需要以编程方式转移到成功验证的应用程序视图。

我知道我可以在登录按钮中添加 segue ,然后以编程方式调用它...

[self performSegueWithIdentifier:@"LoginSegue" sender:sender];

但是,无论何时单击按钮,都会触发此操作(因为创建了segue附加到按钮)。我刚刚读到我应该创建一个按钮(并隐藏它),然后对segue进行编程调用 - 这看起来有点“错误”。

如何创建未附加到任何特定UI事件的segue?

1 个答案:

答案 0 :(得分:135)

删除当前的segue。

将来自原点视图控制器的segue附加到目标位置(然后将其命名)。

现在,按下按钮的方法应如下所示:

目标C:

- (IBAction)validateLogin:(id)sender {
    // validate login
    if (validLogin) {
        [self performSegueWithIdentifier:@"mySegue" sender:sender];
    }
}

夫特:

@IBAction func validateLogin(sender: UIButton) {
    // validate login
    if validLogin {
        self.performSegueWithIdentifier("mySegue", sender:sender)
    }
}

这里的关键是原始视图控制器应该是你要创建segue的那个,而不是按钮或任何其他UI元素。

enter image description here

就个人而言,我以这种方式挂钩我的所有segues,甚至是那些应该触发简单按钮推送而没有任何验证或逻辑的。通过按钮的方法调用它很容易。

而且,我通常在项目的某个地方将所有的segue名称声明为常量字符串。