何时为新屏幕创建新的故事板与视图控制器?

时间:2016-08-11 13:19:06

标签: ios uiviewcontroller uistoryboard xcode-storyboard

我是iOS开发的新手,无法找到答案。

我应该何时创建新的故事板,何时应该为新屏幕创建新的视图控制器?

Launch ScreenMain是两个不同的故事板。假设Main是登录屏幕,所以在用户登录后,他应该看到一个新的屏幕。我应该使用哪种方法来创建该屏幕?

4 个答案:

答案 0 :(得分:3)

对于大多数简单应用,只需一个故事板即可适应您的应用用户界面。是的,如果您选择遵循现代最佳实践,那么还有一个Launch故事板。所以总共有2个。在许多情况下,这就是你所需要的一切。

然而,"大"故事板可以通过几种方式变得笨拙。首先,它是一个巨大的XML文件,因此在Mac上打开包含大量内容的故事板可能会更慢。是否令你烦恼取决于你。此外,如果您在团队中工作而不是独奏,有时候故事板很难跟踪合并。因此,如果你想将你的应用分解成多个故事板,你可以,iOS 9的功能可以帮助你更轻松地实现这一目标(故事板参考)。

对于我目前的应用程序,我有3个故事板,每个故事板都按逻辑组织功能。一个是我们的多屏登机。另一个是主应用UI。第三个是我们的设置屏幕,它具有深层次的可导航选项。将它们分解为单独的故事板是有意义的,因为它们非常不同。

您可能会感到困惑,因为如果您在Twitter或Web上搜索,您可能会看到一些开发人员每个视图控制器使用一个故事板。那些人是坚果,不听他们。当你这样做时,你错过了很多很棒的故事板功能,其中最大的当然是segues。

答案 1 :(得分:1)

要直接回答上一个问题,请仅使用主故事板:创建用户登录时将看到的场景。使其成为显示的第一个视图。然后创建另一个场景,即您的登录屏幕。启动主屏幕后,请检查您是否已登录。如果没有,则应以模式方式启动登录屏幕。

答案 2 :(得分:1)

您将创建新的ViewController,只有当您的布局设计因不同设备(即iPad和iPhone)而异,或者如果您无法处理具有相同故事板的iPhone和iPad设计时,才需要新的故事板

答案 3 :(得分:1)

由于登录过程有时涉及多个屏幕(忘记传递,注册等等),您可以做的是将Login和Main分成两个故事板。

然后,您从应用代表中创建要显示的内容:

if userLoggedIn() != nil  // No user logged in
 {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        if let rootVC : UIViewController = storyboard.instantiateInitialViewController(){
            window?.rootViewController = rootVC
        }
} else{
        let storyboard = UIStoryboard(name: "Login", bundle: nil)
        if let rootVC : UIViewController = storyboard.instantiateInitialViewController(){
            window?.rootViewController = rootVC
        }
    }
window?.makeKeyAndVisible()

在每个故事板上设置rootViewControllers并进行设置。

这也将最大限度地减少主故事板,在许多情况下,这些故事板可以通过segues和VC来实现,并使其变得越来越不易管理。