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

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

在这里输入图像描述

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

2 Solutions collect form web for “什么是StoryBoard ID,我如何使用它?”

故事板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) } 

请注意语法的变化。

  • Xcode不断要求input密码才能使用系统密钥链
  • Xcode故事板警告:在当前configuration中closures约束引用项目。 closures当前configuration中的这个约束
  • Info.plist实用程序错误:“Info.plist无法打开,因为没有这样的文件”
  • 什么时候应该在Xcode中使用“embedded式二进制文件”而不是“链接的框架”?
  • 有没有一种方法来模拟多个iPhone使用Xcode / iPhone的SIM卡?
  • 冗余一致性错误消息Swift 2
  • 如何使用NSLog进行debugging(@“iPhone模拟器内部”)?
  • 如何在XCode中运行单个testing用例?
  • “UIViewController子类”不出现在xcode 4.3的文件模板库中
  • 在iOS编程中使用Storyboard而不是xib文件有什么好处?
  • 我怎样才能在Xcode中缩进多行?