私は数分前に同様の問題に踏み込み、別の(そして私見よりエレガントな)方法で正しい方向に向けられた後、それを解決することができました:
サブクラスの実装の最初に 次の行を追加します。UITableViewController
@synthesize tableView;
次のコードをサブクラスのメソッドの先頭にinit
追加します(メソッドの先頭も機能する可能性がありますが、メソッドをお勧めします)。UITableViewController
initWithNibName:bundle:
viewDidLoad
init
if (!tableView &&
[self.view isKindOfClass:[UITableView class]]) {
tableView = (UITableView *)self.view;
}
self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
self.tableView.frame = self.view.bounds;
self.tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0);
[self.view addSubview:self.tableView];
そうすれば、質問に投稿したコードを変更する必要がなくなります。上記のコードは基本的にself.tableView
fromを分離していself.view
ます(これは以前と同じオブジェクトへの参照でしたself.tableView
が、現在はUIView
予想どおりにテーブルビューが含まれています)。