【问题标题】:Using UITableView inside Container view for forms - how do I access the form fields?在表单的容器视图中使用 UITableView - 如何访问表单字段?
【发布时间】:2013-09-27 05:16:39
【问题描述】:

我正在尝试使用 Storyboard 中的表格视图来构建表单,但是当表格位于容器内时,我想不出一种简单的方法来访问表单字段。

这就是我所拥有的:

  • 一个自定义视图控制器 (LoginController),其中包含表单所在的容器视图
  • 嵌入在容器中的静态 UITableViewController
  • UITableViewController 中单元格内的字段(电子邮件、密码等)

我的问题是:从 LoginController 访问电子邮件和密码字段值的最简单方法是什么?似乎没有任何方法可以将字段链接到 LoginController 中的 IBOutlets。我可以为我构建的每个表单制作一个自定义表格视图控制器,或者使用 segue 做一些事情,但这太复杂了。有什么办法可以将所有内容都保留在故事板中?

【问题讨论】:

  • 当然有办法做到这一点,但你为什么要这样做呢?电子邮件和密码是登录所必需的,因此登录视图控制器应该直接处理,而不依赖于另一个视图控制器。为什么不使用 2 个文本字段(不在容器视图中)而不是表格视图?
  • 主要是为了方便 - 表格是制作漂亮表格的一种简单(?)方式。登录是一个简单的例子——对于较大的表单、带有部分的表单等,很容易将所有内容放在一个表格中,而不必担心布局。但是,如果获取数据变得困难,那就违背了整个目的。
  • 我应该补充一点:如果整个表单控制器 (LoginController) 是一个表格视图控制器,这很容易,但如果我希望表格只占用部分视图,则不是。跨度>
  • @alex_c 我遇到了同样的问题。你能告诉我你是怎么解决的吗

标签: iphone ios uitableview storyboard


【解决方案1】:

如果你想要一个表格视图,那么你有两个选择。您可以使用动态原型而不是静态表格,因此您可以将表格视图直接添加到登录控制器(并根据需要调整大小)。或者,您可以像在问题中那样使用嵌入式表格视图控制器进行操作。在这种情况下,您可以使登录控制器成为 prepareForSegue 中表视图控制器的委托。该方法将在登录控制器被实例化时被调用,因此您可以在那里将自己设置为委托。然后,您需要在表视图控制器中定义一个委托协议,以将您收集的数据发送回委托。这样一来,就无法在情节提要中设置所有内容(就直接出口而言,因为您无法跨控制器设置出口)。

【讨论】:

    猜你喜欢
    • 2018-06-02
    • 1970-01-01
    • 2018-11-05
    • 2015-03-25
    • 1970-01-01
    • 2021-10-18
    • 2011-03-22
    • 2012-03-29
    相关资源
    最近更新 更多