2013-09-22 28 views
1

我正在尝试使用Storyboard中的表视图来构建表单,但我无法找到表格在容器内时访问表单字段的简单方法。在Container视图中使用UITableView获取表单 - 我如何访问表单域?

这是我有:

How I have my storyboard set up

  • 与容器查看自定义视图控制器(LoginController中),其中形式去
  • 嵌入容器静态的UITableViewController
  • 领域(电子邮件,密码等)在UITableViewController中的单元格内

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

+1

确实有办法做到这一点,但为什么你想?电子邮件和密码是登录所必需的,因此登录视图控制器应该直接处理,而不依赖于其他视图控制器。为什么不使用2个文本字段(不是在容器视图中)而不是表视图? – rdelmar

+0

主要是为了方便 - 桌子是一种简单的(?)方式,可以制作漂亮的外观。登录是一个简单的例子 - 对于较大的表单,带有部分的表单等,很容易将所有内容放在表格中,而不用担心布局。但是如果对数据的处理变得困难,那就会破坏整个目的。 –

+0

我应该补充一点:如果整个表单控制器(LoginController)是一个表视图控制器,那么这很容易,但如果我希望表只占用视图的一部分,那么这很简单。 –

回答

2

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

相关问题