UITableViewControllerとそれに対応するUITableViewを単純なIBドキュメントに挿入しました。目標は、UITableViewを親UIWindow(またはUIView)内に、テーブルを飾る他の「もの」(実際には何でも)とともに含めることです。 InterfaceBuilderでは次のようになります。
私はこれを何度も試しましたが、いつも同じ場所に行きます。
IPhoneエミュレーターまたはデバイスでアプリを実行すると、テーブルは正しく表示されますが、最初に操作しようとするとクラッシュします。スクロール、タップ、何かがアプリをクラッシュさせます。 UITableViewがUITableViewControllerに通信する方法を知らないなど、これはデリゲートの問題のようですが、問題を修正する方法がわかりません。
これまでのところ、tableHeaderViewをカスタマイズして十分なレイアウトを取得することで解決できましたが、他の手法を使用したいと思っています。
あなたは正しい方向に進んでいます!これがあなたがする必要があることです:
付随するビューxibを使用して標準のUIViewControllerサブクラスを作成します。
XIBにUITableViewを追加します。
すべてを配線します。ビューコントローラはテーブルのデリゲートとデータソースになるため、両方のプロトコルを実装する必要があります。
実装ファイルに、テーブルビューに必要なすべてのデータソースとデリゲートメソッドを追加します。
(UITableViewCell *)tableView:(UITableView *)tv
cellForRowAtIndexPath:(NSIndexPath *)indexPath
ヘッダーファイルは次のようになります。
MyViewController.h
@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
IBOutlet UITableView *myTableView;
//This outlet is only necessary if you need to send messages to the table view (such as reloadData)
}
@end
それで十分です!