2010-12-06 11 views
1

私はUITableViewController、nibベースを持っています。これは、iPadで実行しているときにUIPopoverControllerで表示され、iPhoneで実行しているときに 'ネイティブに'表示されます。UITableViewController self.tableViewプロパティはなぜUIPopoverControllerに表示されるときにNilですか?

iPadで実行しているときは、コントローラのself.tableViewプロパティはライフサイクル全体でnilです。通常の操作の一部としてtableViewに渡すデリゲートメッセージは正常に動作し、テーブルビューへの参照を持ちます。

iPhoneでは、このプロパティは設定されており、期待通りに参照が有効です。

self.tableViewプロパティをnilにすることができる特定のものは何ですか? Interface Builderで接続をダブルチェックしました.Nibにはテーブルビューと関連するUISearchBarが含まれています。 Nib内のテーブルビューは、ビューコントローラのビューとして設定されます。

これは、両方のデバイスで4.2.1以降です。私の頭を叩いて、私の誤りを見つけることはできません。

答えて

6

私は私の問題を理解しましたが、もちろん、それはプログラミングエラーです。

この場合、インプリメントファイルの先頭に誤った@synthesize tableViewがあり、競合するゲッターとセッターが生成されます。

謝罪し、これを見た人に感謝します。

0

これを試してみてください... tableViewオブジェクトを返すメソッドのいずれかで "assert(self.view == tableView);"何が起こるか見る。アサーションが発動しない場合、iPhoneまたはiPadのどちらでも起動できないと思われる場合は、self.viewをUITableViewにキャストして、必要な処理を行います。

関連する問題