私はこれを行ってきました tutorial 、 "Option 2:Prototype Cells"すべてのステップを暗示しましたが、次のコードでエラーが発生します。
@interface MTViewController : UITableViewController
@end
エラーメッセージは次のとおりです。
ストーリーボード「メイン」から識別子「UIViewController-BYZ-38-t0r」を持つインスタンス化されたView Controllerが、UITableViewを取得しませんでした。
これが私が試したものです-UITableViewController
をUIViewController
に変更すると、エラーはなくなりました。ただし、テーブルビューは空白のままです。これがなぜなのか教えてもらえますか?
スーパークラスをUIViewControllerに変更するか、ストーリーボードのコントローラーをTableView Controllerに変更してください
@interface MTViewController : UIViewController, UITableViewDataSource, UITableViewDelegate
@end
Table View Controllerの新しいインスタンスをストーリーボードにドラッグし、以前のコントローラーで作成したセルを新しいものにコピーします。
このエラーはおそらく、XTableが作成したUITableViewControllerではないデフォルトのUIViewControllerを使用したために発生しました。
私はあなたとまったく同じ問題に出会いました。おそらく、ストーリーボードでUITableViewControllerの代わりにUIViewControllerを使用しています。
注:ストーリーボードのカスタムUITableViewControllerのサブクラスのみでは不十分です。違いがわかります: IViewControllerとUITableViewControllerの違い
したがって、ライブラリからUITableViewControllerをドラッグして、すべてのもの(セル)をそこに移動する必要があります。破損している場合は、バインディングと自動レイアウトを確認することを忘れないでください。
そしてもちろん、TableViewをUIViewControllerのルートに移動することはできません。そのようには動作しません。 =)
私もこの問題を抱えています。もともとプレーンUIViewController
を作成してから、UITableViewController
を使用することにしました。問題は、新しいコントローラーでストーリーボードIDを設定するのを忘れて、古いコントローラーでそれを別のものに変更することです。そうしないと、ストーリーボードから古いコントローラーをインスタンス化し、この問題が発生します。
実際には、UITableViewControllerではなくUIViewControllerを使用しています。デフォルトのView Controllerを削除し、ストーリーボードに新しいTableViewControllerをドラッグします。 ViewControllerにはTableViewがありませんが、セルをロードしようとしているためです。
簡単な解決策は次のとおりです。ViewControllerを削除してTableViewControllerを追加
次に、クラス名をMTViewControllerまたはYour Class Nameに変更する必要があります
dataSourceがselfに設定されていることを確認してください。