Вызов loadView для подкласса UITableViewController - PullRequest
0 голосов
/ 06 декабря 2010

Я делаю экземпляр подкласса UITableViewController без XIB.Я не собираюсь использовать файл XIB.Я строю данные в подпрограмме -(id)init.Я создаю данные для таблицы в функции -(id)init и использую методы протоколов UITableViewDataSource и UITableViewDelegate для отображения и выбора данных.Я загружаю подкласс UITableViewController в UINavigationController, используя [[UINavigationController alloc] initWithRootViewController: myTVC]; Все это успешно, если я не определяю метод loadView для класса.Если я использую пустой метод loadView, на экран выводится пустой UIView.

Мой вопрос: как написать правильную функцию loadView для простого подкласса UITableViewController?

1 Ответ

3 голосов
/ 26 февраля 2015

Никогда не следует обращаться к [super loadView] в соответствии с документацией Apple: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/occ/instm/UIViewController/loadView

Правильный способ справиться с этим - просто создать экземпляр представления и установить его в self.view, а в данном случае self.tableView также:

- (void)loadView {
    UITableView* tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
    tableView.delegate = self;
    tableView.dataSource = self;

    self.view = tableView;
    self.tableView = tableView;
}
...