UITableViewControllerをセットアップしてtableViewが自分のカスタムサブクラスに属するようにしようとしています。私のloadViewメソッドは現在次のようになっています:UITableViewControllerサブクラスのloadViewをオーバーライドする
- (void) loadView {
MyTableViewSubclass* tv = [[[MyTableViewSubclass alloc]initWithFrame: CGRectZero style: UITableViewStylePlain]autorelease];
self.view = tv;
self.tableView = tv;
}
上記の方法をコメントアウトすると、後でクラッシュすることがあります。だから何かが欠けている。しかし何?
Appleのマニュアルsays loadViewでsuperを呼び出すべきではありません。私は自分のクラスではなく、自分のクラスを持たせたいので、意味があります。助けていない、私が試した
物事:それは、プレーンのUITableViewを作成するように、
-
はloadViewメソッドを書き直し
- 。これは、問題の原因が私のサブクラスの実装にあるのではないことを私に伝えます。
- loadViewメソッドから[super viewDidLoad]を呼び出します。 Appleのドキュメントから、そのメソッドがloadViewから呼び出されたのかどうかは不明です。どのような場合でも、loadViewメソッドの最後に追加することは役に立ちません。
- コメントアウト私のloadViewメソッド:問題を解決しますが、目的に反し、私が試した
一つ。
EDIT:クラッシュを以下に示します。ユーザーが何らかの入力をした後に起こります。私のサブクラスの代わりにプレーンなUITableViewを作成している場合も同様です。アプリケーションには多くのことが起こっていて、loadViewのオーバーライドの中には、状態が異なる原因となっているクラッシュが発生しています。しかし、私は何が違うかを追跡する良い方法は見当たりません。
2011-09-08 12:44:59.591 MyAppName[97649:207] *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[MyTableViewSubclass scrollToRowAtIndexPath:atScrollPosition:animated:]: row (0) beyond bounds (0) for section (0).'
クラッシュログの内容をお知らせください。 -Thanks – Madhu
クラッシュからコンソール出力を追加できますか? – chown