iOS - 在一个TableViewController下有2个表视图和其他元素

8vi*_*ius 1 uitableview uiview ios

我正在尝试创建一个这样的界面:

在此输入图像描述 在此输入图像描述

但是我在XCode中遇到以下错误: Illegal Configuration: Static table views are only valid when embedded in UITableViewController instances

那个控制器是UITableViewController的子类,所以我真的不明白问题是什么,有什么见解?

dbr*_*vic 8

首先,我认为你说ProfileViewController是UITableViewController的子类.如果是这种情况,顶级视图应该是UITableView而不仅仅是UIView.这个错误确实有意义.如果你想创建一个静态表视图,它需要嵌入在它自己的UITableViewController中,这是你将UITableViewController从Palette拖到故事板时得到的.

修改后在评论中回答问题

所以从头开始.将TableViewController拖到故事板上并将类更改为ProfileViewController.这为您提供了原型单元格的tableview.然后将空视图拖到TableView顶部附近.这将为tableView添加一个headerview.(每个tableview都有一个标题和页脚的子视图.这与节标题不同).现在让标题视图更高并将其他元素拖入其中:segmentedButton,搜索字段.拖动您的UIImage视图.然后拖动另一个tableview并将其放在图像视图旁边.

现在创建一个NSObject NOT NSTableViewController的子类.

@interface MiniTableViewController : NSObject <UITableViewDelegate, UITableViewDataSource>

并将那个minitableview的数据源和委托方法放在那里.回到故事板上,将对象拖到层次结构中将类更改为MiniTableViewController,并将minitableview中的委托和数据源出口连接到层次结构中的MiniTableViewController.确保您使用助理视图.然后按住Ctrl键从MiniTableViewController对象拖动到ProfileViewController.h(在@end之前)并创建一个IBOutlet.现在,您可以从ProfileViewController访问新的自定义对象.如果需要MiniTableViewController将消息发送到ProfileViewController,您还可以在MiniTableViewController中创建一个IBOutlet并将其连接到ProfileViewController.