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