UITableView不滚动时没有分配给父母的UIViewController视图属性

我已经把一个UITableView放在一个UIViewController里面,并且把UITableViewController的代码复制到我的UIViewController中,以使它实现UITableViewControllers默认实现的“表格数据协议”,并遵循http://developer.apple.com/library/IOs/#documentation /UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html#//apple_ref/doc/uid/TP40007451-CH6-SW10 s章节“以编程方式创build表格视图”(使用ViewDidLoad代替LoadView,因为我使用IB并且有一个笔尖,我为UITableView命名的tableView创build了一个sockets)。

现在在上面的链接章节中,UITableView被分配给了UIViewController的UIView属性self.view。 然后滚动UITableView工作,但UITableView填充隐藏其他视图内容,如UIToolbar的整个屏幕 – 可能是因为它被分配到视图属性后的唯一内容。

如果我省略了赋值,另一个视图内容就位,一切正常,但UITableView不滚动。

如何实现UIViewController中UITC具有静态内容(如工具栏)滚动的UITableView?

以下是相关的代码:

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [super viewDidLoad]; tableView.delegate = self; tableView.dataSource = self; [tableView reloadData]; //self.view = tableView; } 

如果你在界面构build器中添加了视图控制器中的其他内容,那么这将成为UIViewController的.view属性的一部分 – 当你将表视图分配给这个时,你将删除所有的内容。

如果你的表格视图正常显示,但不滚动(如何select?这是否工作?),您可能已禁用用户交互。

你在评论中提到,在你的表格视图中只有空单元格 – 我认为这是你的问题的原因。 我刚刚创build了一个示例项目,在视图控制器视图的子视图中添加了一个表视图,并且滚动很好 – 这是我在那里填充了100个虚拟行。 如果我不返回任何数据源和委托方法,那么表视图不会滚动。