UITableViewController外の静的テーブルビュー


159

新しいXcodeの更新後、私のアプリは検証されず、このエラーが表示されます。

静的テーブルビューは、UITableViewControllerインスタンスに埋め込まれている場合にのみ有効です

簡単に解決するチャンスはありますか?


UITableViewControllerではなくUIViewControllerサブクラスを使用している理由によって異なります。
David Berry

3
UITableViewControllerに属していないビュー内の他の要素が必要なため
Francesco S

1
ここで同じ問題が発生します。Xcode 5.1にアップグレード(または、現在のところ、ダウングレード)しただけで、同じ問題が発生します。UISplitViewController内のUITableViewControllerサブクラスに静的セルの束があります。
Stefan Arambasich 2014年

アップグレード後、私にも起こり始めました。静的セルで構築されたビューコントローラーがいくつかあります。理想的ではありませんが、以前は問題なく動作していました。
jdmunro 2014年

UITableViewControllerを使用する必要はありません。UiTableViewに静的テーブルビューセルがある場合、このエラーが発生するので、セルが必要な場合は、静的なままにしないでください。tableviewデリゲートとデータソース、ダミーのUITableViewDelegateメソッドを追加するだけ
EarlySun

回答:


341

同じ画面で他のコントロールと一緒に静的UITableViewを取得する唯一の方法は、コンテナビューを使用することです。このようにして、完全に機能します:

  1. ViewControllerをストーリーボードにドラッグします。
  2. TableViewControllerをストーリーボードにドラッグします。
  3. 次に、コンテナビューをViewControllerにドラッグし、必要なサイズ(ビューよりも小さい)にサイズ変更します->コンテナビューをドラッグすると、セグエと別のビューが作成されます。そのセグエを削除して表示します。
  4. 次に、最後にコンテナでCtrlキーを押しながらクリックし、新しいTableViewContollerにドラッグします。埋め込みを選択します。
  5. 静的セルを含めて、必要に応じてTableViewのスタイルを設定します。

幸運を。

この回答は既に見つかり、ここに記載されています:G.Huebner-> http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table- view-cells-only-work-in-a-uitableviewcontroller.html


アウトレットまたはアクションをどこで取るか?でUIViewControllerまたは私は取る必要がありますUITableViewController
Bhavin Ramani 2016

@Bhavin Ramani:コンテナ内のUITableViewControllerなので、IBOutletを保持するためにそのクラス/サブクラスを使用することをお勧めします。
LukeSideWalker

2
「静的セル」のアイデア全体は、の内部機能に依存する方法で実装されていると思いますUITableViewController
Nicolas Miari 2017年

2
これありがとう。Xcode 8.3.1で動作することを確認できます。
Atharva Vaidya

すごい!私はしばらくの間、この解決策を探していました。
Jason Foglia

8

静的UITableViewは、UITableViewController内にある必要があります。したがって、テーブルをUITableViewControllerに配置し、それをchildViewとしてMainViewControllerに追加します。

あなたはhttps://iphoneidoit.blogspot.in/2013/10/static-uitableview-in-uiviewcontroller.htmlを参照することができ ます


1
以前はこれを回避する方法がたくさんありましたが(セルを保持するなど)、今では関係なくエラーになります。質問はエラーを抑制する方法があるかどうかを示唆していると思います。
マシュー・ニッペン、2014年

そうだった。残念ながら、私は非静的なtableViewを使用して問題を解決してしまいました
Francesco S

1
うわぁ。IBOutletビューコントローラーファイル内のすべてのsが原因で静的ではないものに変換するために必要な再作業の量が多すぎます。IMOは、変更ログで警告やメモなしにこれを中断して更新を行うことはできません( ergo UITableViewController静的セルを内に持つことは紙の上でも完全に有効だとUISplitViewContoller思います。私はAppleの開発者サポートに連絡し、フォーラムにリンクしている一般的にあまり役に立たない電子メールの応答しか受け取りませんでした。更新後に他の誰かが同じ問題を抱えている場合
Stefan Arambasich 2014年

4

あなたがやっていることは、まずストーリーボード上のViewControllerをドラッグしてから、ViewController上のtableViewをドラッグしていることだと思います。この方法では、静的テーブルセルを使用できません。これの代わりに、ViewControllerではなくメインストーリーボードにTableViewControllerをドラッグして、静的セルを選択する必要があります。このようにして、静的セルで作業することができ、静的セルで任意の要素を使用できます。


0

まあ、本当に静的なtableViewを使用している場合は、すべてをScrollViewまたはStackViewにコピー/貼り付けすることを検討してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.