是否可以在故​​事板中引用其他故事板?

时间:2016-04-17 11:15:38

标签: ios iphone swift interface-builder

我正在开发一个iOS应用程序,我想把它分成几个故事板,问题是我似乎无法找到一种方法来设置Storyboard之间的引用作为切入点。

例如,我希望我的Main.storyboard看起来像这样:

--> Authentication Storyboard --> Tabbed Storyboard --> ...

我是iOS开发的新手,我希望这很简单,但似乎找不到办法。

3 个答案:

答案 0 :(得分:2)

是的,您可以在项目中使用多个Storyboard但是,您无法直接从另一个故事板中引用它们。

引用故事板以便在发布时使用

您的项目目标可以使用其中包含的任何故事板。故事板入口点的参考可以在目标设置中找到。

enter image description here

  1. 选择目标
  2. 选择“常规”选项卡
  3. 在主界面的下拉列表中选择最初使用的故事板。
  4. 在代码中引用故事板

    因此,在此示例中,我希望将viewcontroller推送到导航控制器。我想引用的viewcontroller可能在不同的故事板或我正在使用的当前故事板中。代码不关心...

        if let storyboard = UIStoryboard(name: "A2ndStoryboard", bundle: nil) {
          if let vc = storyboard.instantiateViewControllerWithIdentifier("SomeViewController" as String) {
    
            navigationController?.pushViewController(vc, animated: true)
          }
        }
    

    如果您想引用这样的ViewControllers,您需要确保在Storyboard中正确识别它们:

    enter image description here

答案 1 :(得分:1)

不要使用多个故事板。使用一个故事板,其中包含多个viewcontrollerssegue之间的embed navigationcontroller。对于exa,使用一个viewcontroller进行身份验证,就像明智的另一个viewcontroller for tabs(tabbarviewcontroller)一样。将来自authenticationVC的segue提供给tabbarVC。希望这会有所帮助。 :)

答案 2 :(得分:0)

正如你所说,你是iOS开发的新手,让我试着为你回顾一下:

Interface Builder (IB)是Xcode内置的工具,可帮助您设计用户界面而无需任何代码。 IB可以做的所有事情也可以通过编程方式完成。 IB支持两种不同类型的文件:XIB文件和故事板。

XIB 文件(扩展名.xib)是您可以使用IB设计的UIView个对象的集合。

故事板(扩展名.storyboard)是UIViewController个对象的集合,这些对象都具有您可以使用IB设计的view属性。

<强> Conlusion : 那里(当前)不是Interface Builder文件类型,它代表XIB或Storyboard的集合。因此, 您现在无法在故事板中引用故事板 。相反,您仍然可以将视图控制器拆分为不同的故事板,并在它们之间进行以编程方式进行转换。

这是SO上的另一个主题帮助您开始使用程序化过渡

How can I load storyboard programmatically from class?

我希望这会有所帮助。