Я столкнулся с подобной проблемой несколько минут назад и смог ее решить, указав правильное направление другим (и ИМХО более элегантным) способом:
Добавьте следующую строку в начале вашего подкласса UITableViewController
:
@synthesize tableView;
Добавьте следующий код в начало вашего init
метода вашего UITableViewController
подкласса, например initWithNibName:bundle:
(начало viewDidLoad
также может работать , хотя я рекомендую метод init
):
if (!tableView &&
[self.view isKindOfClass:[UITableView class]]) {
tableView = (UITableView *)self.view;
}
self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
self.tableView.frame = self.view.bounds;
self.tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0);
[self.view addSubview:self.tableView];
Тогда вам больше не нужно менять код, указанный в вашем вопросе. То, что делает приведенный выше код, в основном отделяет self.tableView
от self.view
(который был ссылкой на тот же объект, что и self.tableView
ранее, но теперь это UIView
, содержащий табличное представление, как и следовало ожидать).