我正在尝试创建一个像这样的界面:
但是我在XCode中遇到以下错误:Illegal Configuration: Static table views are only valid when embedded in UITableViewController instances
那个控制器是UITableViewController的子类,所以我真的不明白问题是什么,有什么见解?
答案 0 :(得分: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。
答案 1 :(得分:2)
UITableViewController只能有一个表视图。你有两个。你必须找到另一种方法来做到这一点。
答案 2 :(得分:0)
你在你的xib中放了一个UITableView吗? 如果是,您是否将此UITableView绑定到控制器?