对于我的注册表单,我目前正在使用不是全屏的UITableView,我通过硬编码数据源方法以编程方式添加单元格。当整个班级变得非常复杂和庞大时。 Pastebin link
单元格是自定义的,具有UILabel和UITextfield。现在其中一个单元格应该有一个按钮而不是文本字段。在我看来,这将使整个事情变得更加复杂。所以我的想法是在故事板中使用tableview的静态功能。但这需要一个UITableViewController,如果我使用一个,TableView总是全屏。有没有办法在没有全屏TableView的情况下获取静态功能?
答案 0 :(得分:2)
如果您有固定数量的单元格,静态表视图控制器是一个不错的选择。如您所述,您可以将每个输入字段包含在IB插座中,而不是实现数据源方法。
如果您想要一个非全宽的静态表视图控制器,请将表视图控制器嵌入到容器视图中。
例如,创建一个新的视图控制器,在此新视图控制器中添加具有所需宽度的容器视图对象,然后将静态表视图控制器连接到容器视图。
请注意,静态表视图控制器将成为封闭视图控制器的childViewController。您可以方便地从具有弱属性的封闭视图控制器访问textFields到子视图控制器中的textFields。
- (UITextField *)surnameTextField
{
UITextField *textField;
// reference childController that is initiated via containerView
if ([[self.childViewControllers lastObject] isKindOfClass:[NameViewController class]])
{
NameViewController *nameVC = [self.childViewControllers lastObject];
textField = nameVC.surnameTextField;
}
return textField;
}
答案 1 :(得分:0)
您不需要使用UITableViewController。只需将控制面板中的表视图拖放到故事板中的UIViewController即可。根据您的需要调整大小和位置,并将任何其他控件添加到您需要的UIViewController中。
在UITableView的属性表中,将内容类型设置为“静态单元格”,然后按照您希望的方式定义单元格。