【发布时间】:2017-10-05 03:15:21
【问题描述】:
在我的应用程序中,我有这个视图控制器,用户可以在其中输入信息来创建一个对象。在这个视图的顶部我有一个标签栏,在底部我有一个按钮,用户点击它来创建/保存对象。在这两个视图之间,我有一些元素,例如文本字段、标签和其他一些用户输入对象信息的元素(基本上是对象的表单)。
我现在正在尝试支持横向模式以及向此视图控制器添加更多表单。问题在于较小的设备和横向所有表单元素和文本字段等都不适合。
我正在尝试使用滚动视图来解决这个问题。我使用this Stack Overflow answer 让滚动视图在测试项目中工作(在我将概念移植到我的实际项目之前)。
唯一的问题是如果我无法使用该方法将按钮固定到屏幕底部。为了解决这个问题,我在主视图控制器(视图控制器 A)内创建了一个容器视图。该容器视图映射到包含滚动视图和内容的视图控制器(视图控制器 B)。然后在视图控制器 A 中容器视图的正下方,我能够添加创建/保存按钮。从设计的角度来看,这似乎完美无缺。但是现在内容与创建/保存按钮位于单独的视图控制器中,我实际上无法从用户输入文本字段的内容中获取内容和输入。
处理这种情况的最佳方法是什么?在这里使用容器视图真的是最好的方法吗?有没有一种简单的方法可以将这些输入从文本字段映射回主视图控制器?
如果可能的话,我希望将尽可能多的设计工作保留在 Storyboard 中。在 Swift 中添加视图和设计元素将是最后的手段。但我很确定我需要使用某种类型的代码将数据返回到主视图控制器,这完全没问题。
【问题讨论】:
-
据我了解,B 是 A 的子视图控制器?如果这是正确的,你能告诉我你是否在你的代码中添加它作为一个孩子吗?
-
@AndriyGordiychuk 我有我正常的默认视图控制器(视图控制器 A)。然后我将容器视图拖到该默认视图控制器上。它在视图控制器 A 内创建了一个视图,并创建了一个新的视图控制器(视图控制器 B)。这一切都是在情节提要中完成的,根本没有代码。在视图控制器 B 内部,我有滚动视图和内容以及所有这些。在视图控制器 A 中,我只有容器视图(通过一些嵌入 segue 或类似的东西链接到视图控制器 B)和底部的创建/保存按钮。
-
@AndriyGordiychuk 如果这没有意义,请告诉我。
-
有道理会告诉你如何解决你的问题
标签: ios swift uiscrollview uistoryboard xcode-storyboard