给定:我有一个“弹出”视图,我把我的tableView放在我的UITableViewController中。我把它放在那里:
[self.navigationController.view addSubview:self.hoverView];
问题:添加tableView页脚视图时,我看不到这个hoverView。看似无关的是吗?
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
[self.tableView.tableFooterView addSubview:someLabel];
这些似乎是相互排斥的。我可以拥有一个,但不能拥有另一个。要查看发生了什么,我打印子视图说明如下:
for (UIView *sub in self.navigationController.view.subviews)
{
NSLog([sub description]);
}
添加表格页脚视图时,此代码不会打印任何内容。否则,我看到一些navigationController内部视图的预期输出。我错过了什么?!
答案 0 :(得分:1)
不要将hoverView添加到UINavigationController的视图中。而不是使用UITableViewController,使用UIViewController,其视图包含UITableView作为子视图。 (有关如何在UIViewController中实现其余UITableViewController功能的详细信息,请参阅here。然后将你的hoverView添加到该视图中,即使其成为UITableView的兄弟,但是后来的兄弟会出现在它上面。
这可能无法解决您的问题,但我认为这是您最好的选择:UINavigationController的设计不是直接操纵其视图,而是将视图控制器推入其堆栈并相应地将子视图添加到其视图中。 / p>