UIStoryboard名称和包

时间:2012-09-21 15:42:45

标签: ios xcode

我有这行代码:

[UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];

和故事板文件。我在哪里插入控制器的名称,以及在哪里找到捆绑包?

这是一个愚蠢的问题,但我无法弄清楚

4 个答案:

答案 0 :(得分:15)

一切都非常简单!

这是代码:

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

@“主要故事板”的位置是 .storyboard 文件的名称。 Bundle只是包含 .storyboard 文件的软件包,通常是您应用的主要软件包。

如果您想要访问某些UIViewControllers,例如,为了将其推送到UINavigationController的堆栈,那么您必须这样做:

UIViewController *yourViewController = 
[storyboard instantiateViewControllerWithIdentifier:@"viewControllerIdentifier"];

您可以在Xcode的Identity Inspector中将Identifier设置为您的UIViewController!

希望它可以帮到你!

答案 1 :(得分:9)

name参数 .storyboard文件的名称(不含扩展名)。

bundle通常是应用程序的主要捆绑包。通常,您传递nil,以便运行时默认搜索主包中的Storyboard文件(与传递[NSBundle mainBundle]时相同)。实际上,您通常在iOS应用程序中只有一个包,它是代表您的IPA包的主要包,因此nil是此参数的通用值)

例如,如果你有一个名为MyStory.storyboard的故事板,你会写:

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

实际上所有这些都是in the Apple documentation for this method解释的。

  

storyboardWithName:束:

     

为指定的故事板资源文件创建并返回storyboard对象。

     

+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil

     

<强>参数

     
      
  • name没有文件扩展名的故事板资源文件的名称。如果此参数为nil,则此方法引发异常。
  •   
  • storyboardBundleOrNil:包含故事板文件及其相关资源的捆绑包。如果指定nil,则此方法将查找当前应用程序的主包。
  •   

答案 2 :(得分:5)

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

答案 3 :(得分:0)

Swift 5版本:

{{1}}

在此示例中,我使用默认的“主”情节提要文件作为参考。