Tax*_*Noi 12 xcode ios uistoryboard uistoryboardsegue swift
请原谅我的初学者问题.我知道我可以像这样切换到另一个屏幕(ViewController)
self.performSegueWithIdentifier ("SecondViewController", sender: self)
Run Code Online (Sandbox Code Playgroud)
但我似乎无法找到在哪里指定我的第二个屏幕的id,我只是找到了Storyboard ID,是吗?
我已经尝试过,只是因为以下错误而收到了崩溃:
Receiver()没有带标识符'SecondViewController'的segue
任何的想法?谢谢
Ahm*_*d F 27
Segue公司标识是不一样的故事板ID,当你想基于特定故事创造一个视图控制器使用故事板ID -和它必须是唯一的,不像SEGUE identifier-.
如果您已经知道如何创建segue,则可以跳过此部分.
在Interface Builder中,按下ctrl并拖动要链接的两个视图控制器(确保从视图控制器本身拖动,而不是从其主视图拖动).你应该看到:
选择"显示" - 例如 - 输出应如下所示:
如上所示,红色矩形包围的箭头是segue.
附加说明:如果选择"显示"选项,则必须在导航控制器中嵌入第一个视图控制器(选择第一个viewController - >编辑器 - >嵌入 - >导航控制器),输出应如下所示:
因为"显示"意味着推入导航控制器堆栈.
选择segue,从属性检查器中您将看到"Identifier"文本字段,就是这样!确保插入与之相同的名称performSegueWithIdentifier
.
如果您不知道在何处找到属性检查器,则它位于右上方,如下所示:
要从一个View Controller 添加多个 segue,请按照相同的过程(ctrl+从第一个控制器拖动到另一个View Controller),输出应如下所示:
在这种情况下,您可能会面临如何识别已执行哪个segue的问题,覆盖prepare(for:sender:)
方法是解决方案,您可以根据segue identifier
属性进行检查:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "firstSegueIdentifier") {
// ...
} else if (segue.identifier == "secondSegueIdentifier") {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
这是您在故事板中添加到segue的名称.