IOS7,Segue和情节提要-如何创建无按钮?


68

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

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

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

但这显然会在单击按钮时触发(因为segue已创建并附加到按钮)。我刚刚读过我应该创建一个按钮(并将其隐藏),然后以编程方式调用segue-这似乎有些“错误”。

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

Answers:


145

删除当前的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)
    }
}

这里的关键是原点视图控制器应该是您要拖动以创建序列的控制器,而不是按钮或任何其他UI元素。

在此处输入图片说明

就我个人而言,我是通过这种方式来收集所有信息的,即使是那些应该在没有任何验证或逻辑支持的情况下在简单按钮按下时触发的信息。从按钮的方法调用它很容易。

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


7
没问题。就我个人而言,我是通过这种方式来收集所有信息的,即使是那些应该在没有任何验证或逻辑支持的情况下在简单按钮按下时触发的信息。从按钮的方法调用它很容易。
nhgrif 2014年

我不知道你能做到这一点,谢谢!...我一直在创建隐藏/不可见的按钮以创建标记。然后我将命名并在必要时触发:S
Chris Allinson

请注意,如果有故事板参考(出于组织目的),则可以通过转到对象库并将“故事板参考”对象拖动到故事板上来连接segue。然后按照上述说明连接segue
kevinius

我还必须手动给segue一个标识符。在Xcode 12中,我必须在图形情节提要中选择segue,然后单击属性面板中看起来像3个滑块的图标。您可以在其中输入标识符。否则,您会得到一个错误,那就是没有segue。
戴夫·哈伯德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.