2009-08-01 91 views
0

鉴于:我有点“弹出”视图,我把我的tableView放在我的UITableViewController。我把它放在那里是这样的:tableView页脚奇怪的行为

[self.navigationController.view addSubview:self.hoverView]; 

问题:我看不到这个hoverView当我添加的tableView页脚视图。看似毫不相关的是的?

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

是否有可能在添加tableView页脚视图时,将悬停视图添加到页脚视图下方。此外,你应该知道你正在泄漏你的第二个代码示例中的内存。 – zpesk 2009-08-01 23:47:29

回答

1

不要将hoverView添加到UINavigationController的视图。而不是使用UITableViewController,请使用其视图包含UITableView作为子视图的UIViewController。 (有关如何在UIViewController中实现UITableViewController的其余功能的详细信息,请参阅here)。然后将你的hoverView添加到该视图,即使它成为UITableView的同胞,但后来的兄弟会出现在它上面。

这可能无法解决您的问题,但我会说这是您最好的选择:UINavigationController并非旨在直接操纵其视图,而是设计为将视图控制器推入其堆栈并相应地将子视图添加到其视图。