为UITableViewController子类调用loadView

时间:2010-12-06 20:47:33

标签: iphone objective-c ios uitableview loadview

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

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

1 个答案:

答案 0 :(得分:3)

根据Apple的文档,我们永远不应该致电[super loadView]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;
}