iOS5 から導入された、 Storyboard のTableViewでのStaticモード。コードを書かなくても、Storyboard上でテーブルのセルを編集出来るのがいいですね。
それを使ってストリーボードを編集してアプリを作る際にいくらか制限がありました。その制限を守らないと、Storyboard上では編集出来るものの、実行するとセルが表示されないという問題があります。
これを正しく動かす方法です。
非常に基本的なのですが、
- UITableViewController上にテーブルを配置する
- UITableViewを、サブクラス化したときは、そのサブクラスに、UITableViewDataSource, – Delegateメソッドを実装しない。
UITableViewController上に配置して、メインのview=staticTableViewになる必要があります。
これでちょっと今日はまってしまったのですが、UITableViewControllerのサブクラスだったら大丈夫だと思っていたのですが、なかなかテーブルが表示されず、いろいろ試してやっと原因を発見しました。特に、
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
の中で、Storyboardを読んでデータを作成する処理を入れているようで、それが上書きされると正しく動かないようです。
便利な機能ですが、エラーなどをはかないだけ、ちょっとたちが悪いですね。。。
参考にしたページ
ios – UITableView with static cells does not appear – Stack Overflow