0

我创建了一个没有 xib 的 UITableViewController 子类的实例。我不会使用 xib 文件。我在-(id)init例程中构建数据。我在函数中为表格创建数据-(id)init,并使用 UITableViewDataSource 和 UITableViewDelegate 协议的方法来显示和选择数据。我将 UITableViewController 子类加载到 UINavigationController 中,[[UINavigationController alloc] initWithRootViewController: myTVC]; 如果我没有为类定义 loadView 方法,这一切都会成功。如果我创建一个空白的 loadView 方法,则会在屏幕上放置一个空的 UIView。

我的问题:如何为 UITableViewController 的简单子类编写正确的 loadView 函数?

4

1 回答 1

3

永远不应该[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;
}
于 2015-02-26T16:30:22.550 回答