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

问题描述 投票:63回答:1

我目前有登录视图和应用程序视图,我已成功在登录视图上实现验证,我需要以编程方式切换到成功验证的应用程序视图。

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

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

但是,只要单击按钮,就会触发这种情况(因为创建了segue附加到按钮)。我刚刚读到我应该创建一个按钮(并隐藏它),然后对segue进行编程调用 - 这看起来有点“错误”。

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

ios segue xcode-storyboard
1个回答
137
投票

删除当前的segue。

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

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

Objective-C:

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

Swift:

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.