何时为新屏幕创建新的故事板与视图控制器?
Posted
技术标签:
【中文标题】何时为新屏幕创建新的故事板与视图控制器?【英文标题】:When to create new storyboard vs View Controller for a new screen? 【发布时间】:2016-08-11 13:19:06 【问题描述】:我是 ios 开发新手,无法找到答案。
什么时候应该创建一个新的故事板,什么时候应该为新屏幕创建一个新的视图控制器?
Launch Screen
和 Main
是两个不同的故事板。假设Main
是登录屏幕,所以用户登录后,他应该会看到一个新屏幕。我应该使用哪种方法来创建该屏幕?
【问题讨论】:
为什么不在故事板中添加一个新场景呢?这是公认的方式。然后使用 segue 在它们之间导航,或者使用导航控制器。 @OwenHartnett 好的,那么什么时候创建一个新的故事板?为什么 LaunchScreen 和 Main 是两个不同的故事板,而不是一个带有两个视图控制器的故事板? 故事板描绘了用户通过您的应用程序所采用的路径。大多数应用程序只需要一个情节提要。在某些情况下,根据用户的输入,您需要采用两条完全不同的路径,如果您使用的是 iPhone,则说一条路径,如果使用的是 iPad,则说另一条路径(但班级规模应该可以处理这个问题)。另一种情况是,当故事板变得如此之大时,将其分成更小的故事板是有意义的。 而对于第二个问题,main 一般是应用故事板,LaunchScreen 仅用于生成启动屏幕(即在应用启动时出现的屏幕在执行之前交给您的应用代码)。 【参考方案1】:要直接回答您的最后一个问题,请仅将主故事板用于此目的:创建用户登录时将看到的场景。使其成为显示的第一个视图。然后创建另一个场景,即您的登录屏幕。当您的主屏幕启动时,让它检查您是否已登录。如果没有,它应该以模态方式启动您的登录屏幕。
【讨论】:
【参考方案2】:对于大多数简单的应用,只需一个 Storyboard 即可适应您的应用 UI。是的,如果您选择遵循现代最佳实践,那么还有一个 Launch 故事板。所以总共有2个。在许多情况下,这就是您所需要的。
但是,“大”故事板在某些方面可能会变得笨拙。一方面,它是一个巨大的 XML 文件,因此包含大量内容的情节提要在 Mac 上打开可能会更慢。这是否困扰您取决于您。此外,如果您是在团队中工作而不是单独工作,有时在合并时很难跟踪故事板。因此,如果您想将您的应用程序分解为多个故事板,您可以这样做,而且 iOS 9 的功能可以帮助您比以往更轻松(故事板参考)。
对于我当前的应用程序,我有 3 个故事板,每个故事板都围绕功能进行逻辑组织。一个是我们的多屏登机。另一个用于主应用程序 UI。第三个是我们的设置屏幕,它有很深的可导航选项层次结构。将它们分成单独的故事板是有意义的,因为它们非常不同。
您可能会感到困惑,因为如果您在 Twitter 或 Web 上四处搜索,您可能会看到一些开发人员他们为每个视图控制器使用一个情节提要。那些人是疯子,不要听他们的。当您这样做时,您会错过许多出色的故事板功能,其中最大的当然是转场。
【讨论】:
【参考方案3】:您将创建新的 ViewController,仅当您的布局设计针对不同的设备(即 iPad 和 iPhone)不同或您无法使用相同的故事板处理 iPhone 和 iPad 的设计时,才需要新的故事板
【讨论】:
【参考方案4】:由于登录过程有时涉及多个屏幕(忘记密码、注册等),您可以将登录和主屏幕拆分为两个故事板。
然后,您可以从应用委托中显示:
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,并使其变得越来越难以管理。
【讨论】:
以上是关于何时为新屏幕创建新的故事板与视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章