我正在开发一个iOS应用程序,我想把它分成几个故事板,问题是我似乎无法找到一种方法来设置Storyboard之间的引用作为切入点。
例如,我希望我的Main.storyboard
看起来像这样:
--> Authentication Storyboard --> Tabbed Storyboard --> ...
我是iOS开发的新手,我希望这很简单,但似乎找不到办法。
答案 0 :(得分:2)
是的,您可以在项目中使用多个Storyboard但是,您无法直接从另一个故事板中引用它们。
引用故事板以便在发布时使用
您的项目目标可以使用其中包含的任何故事板。故事板入口点的参考可以在目标设置中找到。
在代码中引用故事板
因此,在此示例中,我希望将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中正确识别它们:
答案 1 :(得分:1)
不要使用多个故事板。使用一个故事板,其中包含多个viewcontrollers
与segue
之间的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?
我希望这会有所帮助。