【问题标题】:Storyboard in XcodeXcode 中的故事板
【发布时间】:2018-03-05 09:32:15
【问题描述】:

我使用 Xcode 已经有一段时间了,我正在做的事情很有效,但我无法想象这是最好的方法。当我想在 Xcode 中的场景之间转换时,我在主情节提要中的 UIViewControllers 之间创建了一个转场。这是我的一个应用程序中的故事板图片。

通过查看图片,您可能会理解为什么我很好奇我正在做的事情是否是不好的做法。我应该怎么做才能在场景之间过渡,或者大多数人会怎么做才能在场景之间过渡?感谢您的帮助!

【问题讨论】:

  • 您确定您的用例超出了 UINavigationController 的能力范围?我怀疑您在某些地方使用的是 push segues 而不是 pop。你能确认我是不是错了吗?
  • 它没有超出 UINavigationController 的能力,它工作得很好。我只是认为这样设置我的场景是不好的做法。
  • 是的,这似乎是一种不好的做法。即使在内存管理级别。例如,考虑 initialViewController 和最直接的 viewController (不知道如何准确引用它,图像不可读)。你在两者之间有一个循环的segue。即,您可能对这些连续进行循环推送操作(最坏情况)。内存不会被释放。在许多其他视图中也可以看到相同的示例。可能您已经在代码中对其进行了管理,但我肯定不会这样设计它。相反,我会使用 pop,然后根据目的使用所需的数据填充视图。

标签: ios xcode storyboard


【解决方案1】:

这不容易回答,但我会给你一些背景:

  1. 故事板是一种很好的视觉方式,可以从视图控制器中删除推送/呈现代码,并清楚地说明正在发生的事情(与代码相比)。
  2. 让 UIViewControllers 处理导航被认为是最佳实践(至少在许多较大的项目/企业中)。这就是为什么像 VIPER 这样的模式(以及其他原因,是的,VIPER 可能有点过分了)。

在你的情况下,关系并不清楚,很多事情也来来回回。现在,您可能可以更好地布置它们,并且可以调整包含或关系。

以下是我可以提供的一些建议。尝试使视图控制器在打开其他视图控制器时尽可能愚蠢,无论是什么和如何——理想情况下,它们应该只向某些控制器/调解器/管理器表明他们希望“做”某事。它使维护和重构变得更加容易,尤其是以后添加可能会改变导航工作方式的新功能,例如在应用中添加登机。

长话短说,故事板并不糟糕,但是由于多个开发人员的版本控制困难,许多企业和大型项目不使用它们(使用带有 NIB 的浅故事板可以缓解这种情况,你确实失去了一些 Segue),并且因为你可能倾向于增长过于复杂的视图控制器。它非常适合个人的小型应用程序......随着复杂性的增加,价值主张变得越来越薄。

【讨论】:

    猜你喜欢
    • 2012-05-06
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 2015-09-16
    • 2012-01-22
    • 2012-01-13
    • 1970-01-01
    相关资源
    最近更新 更多