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

Lia*_*amB 66 ios segue xcode-storyboard

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

我知道我可以在登录按钮上添加一个segue,然后像这样调用它programaticaly ...

[self performSegueWithIdentifier:@"LoginSegue" sender:sender];
Run Code Online (Sandbox Code Playgroud)

但是,当点击按钮时,这显然会被触发(因为创建的segue是连接到按钮的).我刚刚读到我应该创建一个按钮(并隐藏它),然后对segue进行编程调用 - 这看起来有点"错误".

如何创建一个没有附加到任何特定UI事件的segue?

nhg*_*rif 140

删除当前的segue.

将segue从原点视图控制器附加到目标(然后命名).

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

Objective-C的:

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

迅速:

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

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

在此输入图像描述

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

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

  • 没问题.就个人而言,我以这种方式挂钩我的所有segues,即使那些应该触发简单按钮推送而没有任何验证或逻辑背后的那些.通过按钮的方法调用它很容易. (6认同)