Xcode,在哪里分配segue标识符

请原谅我在Swift 2中的初学者问题。我知道我可以像这样切换到另一个屏幕(ViewController)

self.performSegueWithIdentifier ("SecondViewController", sender: self) 

但我似乎无法find哪里分配我的第二个屏幕的ID,我只是find故事板ID,是吗?

我已经尝试过,只收到与以下错误的崩溃:

 'Receiver (<MyApps.RegViewController: 0x7fda5ae3abf0>) has no segue with identifier 'SecondViewController'' 

任何想法? 谢谢

Segue标识符 不同于 故事板ID ,当您想要创build基于特定故事板的viewController时使用的故事板ID ,它不得不与segue标识符一样是唯一的。

如果你已经知道如何创build一个segue,你可以跳过这个部分。

在两个viewControllers之间添加一个segue:

在界面生成器中,按下ctrl并在要链接的两个viewController之间拖动。 你应该看到:

在这里输入图像描述

select显示 – 例如,输出应该是这样的:

在这里输入图像描述

被红色长方形包围的箭头是赛格。

附加说明:如果select“显示”,则在navigationController中embedded您的第一个viewController(select您的第一个viewController – > Editor – > Embed In – > Navigation Controller),输出应该如下所示:

在这里输入图像描述

为segue分配一个标识符:

selectsegue,从属性检查器中你会看到“Identifier”文本字段,就是这样! 确保插入与performSegueWithIdentifier中使用的完全相同的名称。

如果你不知道在哪里find属性检查器,它是在右上angular看起来像:

在这里输入图像描述


也:

为了从一个viewController添加多个 segues到很多,按照相同的过程(ctrl +从第一个控制器拖到每个其他viewController),输出应该看起来像这样:

在这里输入图像描述

在这种情况下,您可能会遇到如何识别哪个segue已被执行的问题,覆盖prepareForSegue方法是解决scheme,您可以根据segue标识符进行检查:

 override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if (segue.identifier == "firstSegueIdentifier") { // ... } else if (segue.identifier == "secondSegueIdentifier") { //... } } 

当您将视图控制器链接到故事板中的另一个视图控制器时,在它们之间的链接中,您需要分配一个segue标识符,即“SecondViewController”,只有您的代码才能工作。

或者,你也可以使用self.storyboard.instantiateViewControllerWithIdentifier(“//该视图控制器的storyboard id”)来显示另一个视图控制器,然后使用present / show view controller。

在你的代码中

 self.performSegueWithIdentifier ("SecondViewController", sender: self) 

string“SecondViewController”看起来像storyboard id。 在同一个地方,你必须编写segue标识符,而不是storyboard id。

按照屏幕截图,通过点击右上栏上的segue来指定segue标识符名称。 你可以这样做

 self.performSegueWithIdentifier ("WriteSegueIdentifierName", sender: self) 

在这里输入图像描述