什么是StoryBoard ID,我如何使用它?

我是IOS开发新手,最近刚刚开始使用Xcode 4.5。 我看到每个viewController,我可以设置一些身份variables,包括故事板ID。 这是什么,如何使用它?

在这里输入图像描述

我开始在stackoverflow上search,找不到任何解释。 我认为这不只是一个愚蠢的标签,我可以设置记住我的控制器吗? 它有什么作用?

故事板ID是一个string字段,您可以使用该字段来创build基于该故事板ViewController的新的ViewController。 一个示例使用将来自任何ViewController:

//Maybe make a button that when clicked calls this method - (IBAction)buttonPressed:(id)sender { MyCustomViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; [self presentViewController:vc animated:YES completion:nil]; } 

这将创build一个MyCustomViewController,它基于您命名为“MyViewController”的故事板ViewController,并将其呈现在当前视图控制器

如果你在你的应用程序代表,你可以使用

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; 

编辑:斯威夫特

 @IBAction func buttonPressed(sender: AnyObject) { let vc = storyboard?.instantiateViewControllerWithIdentifier("MyViewController") as MyCustomViewController presentViewController(vc, animated: true, completion: nil) } 

 let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil) 

添加到埃里克的答案,并更新为Xcode 8和Swift 3:

一个故事板ID确实是名字所暗示的:它标识。 只是它在故事板文件中标识了一个视图控制器 。 这是故事板如何知道哪个视图控制器是哪个。

现在,不要被这个名字弄糊涂了。 故事板ID不能​​识别“故事板”。 根据苹果的文档,故事板代表了全部或部分应用用户界面的视图控制器。 所以,当你有类似下面的图片时,你有一个名为Main.storyboard的故事板,它有两个视图控制器,每个视图控制器可以被给出一个故事板ID(在故事板中它们的ID)。

在这里输入图像描述

您可以使用视图控制器的故事板ID来实例化并返回该视图控制器。 然后,你可以继续操纵和呈现它,但是你想要的。 要使用Eric的示例,假设您想在按下button时显示带有标识符“MyViewController”的视图控制器,您可以这样做:

 @IBAction func buttonPressed(sender: Any) { // Here is where we create an instance of our view controller. instantiateViewController(withIdentifier:) will create an instance of the view controller every time it is called. That means you could create another instance when another button is pressed, for example. let vc = storyboard?.instantiateViewController(withIdentifier: "MyViewController") as! ViewController present(vc, animated: true, completion: nil) } 

请注意语法的变化。