0

xib なしで UITableViewController のサブクラスのインスタンスを作成します。xib ファイルは使用しません。-(id)initルーチンでデータを構築します。関数でテーブルのデータを作成し-(id)init、UITableViewDataSource および UITableViewDelegate プロトコルのメソッドを使用してデータを表示および選択します。[[UINavigationController alloc] initWithRootViewController: myTVC]; クラスの loadView メソッドを定義していない場合、このすべてが成功する IF を使用して、UITableViewController サブクラスを UINavigationController にロードします。空の 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 に答える