IOS7,塞格和故事板 – 如何创build没有button?

我目前有一个login视图和一个应用程序视图,我已经成功地在login视图上执行validation,我需要编程方式转移到成功validation的应用程序视图。

我知道我可以添加一个segue到loginbutton,然后像这样调用它programaticaly …

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

但是,当button被点击时,这显然会被触发(因为segue被创build附加到button)。 我刚刚读过,我应该创build一个button(并隐藏它),然后对segue进行编程调用 – 这似乎有点“错误”。

如何创build一个不附加到任何特定UI事件的Segue?

删除当前的赛格。

从源视图控制器附加segue到目的地(然后命名它)。

现在,你的button按下方法应该是这样的:

Objective-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) } } 

这里的关键是,原始视图控制器应该是你正在拖动创buildsegue的,而不是button或任何其他UI元素。

在这里输入图像描述

就我个人而言,我把这些方法都挂钩了,即使是那些在简单的button上触发的button,没有任何validation或者背后的逻辑。 从button的方法调用它很容易。

而且,我通常将所有的segue名称声明为项目中某处的常量string。