web-dev-qa-db-ja.com

静的セルを含むUITableViewは表示されません

ストーリーボード(タブビューテンプレート)を使用して新しいXcodeプロジェクトを作成しました。ストーリーボードにいくつかのView Controllerを追加し、1つの静的セルでUITableViewを使用したいと考えました。作成しましたが、シミュレータで実行するとセルが表示されません。このストーリーボードファイル以外は、プロジェクトで何も変更していません。ストーリーボードエディターと実行中のシミュレーターのスクリーンショットを示しています。ラベルが表示されるため、ビューは正しくロードされています。背景色をグレーに設定して、talbeviewがロードされていることを確認します。すべてのセルが表示に設定されます。スタイルをベーシックに変更し、ラベルを編集し、開示インジケーターを追加しました。それだけです。

simulatorxcode

63
adum

Generic View ControllerではなくTableViewControllerを使用してみますか?

34
Dennis Mathews

静的テーブルビューを使用する場合は、以下のメソッドを実装しないでください。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
}
202
Joe Y

Ray WenderlichのWebサイトで述べられているように(この投稿では iOS 5パート2のストーリーボードの開始 、セクション「職場のプレーヤー画面の追加」):

静的セルについてもう1つ、UITableViewControllerでのみ機能します。ストーリーボードエディターを使用すると、通常のUIViewController内のテーブルビューオブジェクトにそれらを追加できますが、実行時には機能しません。これは、UITableViewControllerが静的セルのデータソースを処理するための追加の魔法を提供するためです。 Xcodeでは、「不正な構成:静的テーブルビューはUITableViewControllerインスタンスに埋め込まれている場合にのみ有効です」というエラーメッセージでそのようなプロジェクトをコンパイルすることさえできません。

同じ問題を抱えていたが、これは物事を明確にします...

102
EeKay

コンテナビューを追加し、そのコンテナにUITableViewControllerを埋め込むことができます。その後、新しいコントローラー内で静的セルを管理できます。

11
zqy