2009-08-01 2 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

ответ

1

Не добавляйте hoverView в представление UINavigationController. Вместо использования UITableViewController используйте UIViewController, представление которого содержит UITableView в качестве подсмотра. (См. here для получения подробной информации о том, как реализовать остальные функции UITableViewController в вашем UIViewController). Затем добавьте свой hoverView в это представление, т. Е. Сделайте его братом UITableView, но более поздним братом, чтобы он появился над ним.

Это может не решить вашу проблему, но я бы сказал, что это ваш лучший выбор: UINavigationController не предназначен для непосредственного управления своим представлением, он предназначен для того, чтобы контроллеры представлений вставлялись в его стек и соответствующим образом добавляли в него представления.