StoryboardのTableView-Staticでセルが表示されない問題を解決する方法

iOS5 から導入された、 Storyboard のTableViewでのStaticモード。コードを書かなくても、Storyboard上でテーブルのセルを編集出来るのがいいですね。
それを使ってストリーボードを編集してアプリを作る際にいくらか制限がありました。その制限を守らないと、Storyboard上では編集出来るものの、実行するとセルが表示されないという問題があります。

これを正しく動かす方法です。

非常に基本的なのですが、

  • UITableViewController上にテーブルを配置する
  • UITableViewController上に配置して、メインのview=staticTableViewになる必要があります。

  • UITableViewを、サブクラス化したときは、そのサブクラスに、UITableViewDataSource, – Delegateメソッドを実装しない。
  • これでちょっと今日はまってしまったのですが、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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください