2017-08-07 6 views
0

現在、私はUITableViewControllerを持っていますが、画面の下部にラベルを追加したいと思います。私はこれを行う最も簡単な方法は、UITableViewでUIViewControllerを使用することになると思います。上に移行する簡単な方法はありますか?私はいくつかの機能的に異なっていることに気づいた。たとえばUITableViewControllerにはnumberOfSectionsメソッドがありますが、UITableViewにはそのメソッドがありません。また、UITableViewのデリゲートとしてUIViewControllerを使用することは可能ですか?前もって感謝します。UITableViewControllerをUITableViewに移動

更新:私はコードの画像と、UITableViewDataSourceを実装しようとしたときに与えられたエラーを添付しました。

Source Code

答えて

0

これは可能です。 UITableViewDelegateを実装し、View ControllerにUITableViewDatasourceを含める必要があります。次に、TableViewControllerで使用していた関数を使用できます。

基本的には、インターフェイスビルダにテーブルビューを追加するか、プログラムによって(選択に応じて)追加する必要があります。それがインターフェイスビルダーを介して完了している場合は、あなたのコントローラにそれをコンセント。デリゲートをクラスに追加すると、tableViewFunctions(cellForRow、numberOfItems、numberOfSections、didSelectRowなど)にアクセスできます。

また、tableviewを作成するときは、tableview.delegate = selfとtableview.datasource = selfを指定します。

0

は、私の知る限りでは、方法が同じであるそのわずかUITableView場合、あなただけの各1の前にoverrideビットを必要としません。デリゲートとしてUIViewControllerを使用することができます(はい、myTableView.delegate = selfviewDidLoadメソッドに設定します)。

ただし、必要なラベルがあれば、プログラムで追加することを検討してください。たとえば、データラベルなしで達成された同様の結果 - hereを参照してください。そうすれば、ポジショニングをして遊ぶことができます。

+0

こんにちは、UIViewControllerとしてUITableViewDelegateを採用できないため、メソッドは転送されません。 –

+0

UITableViewDataSourceとUITableViewDelegateプロトコルをクラス宣言に追加しましたか?おそらく元の質問をあなたのコードで更新することができますか? – Tom

+0

こんにちはTom、更新された質問を参照してください。ここにソースコードの図があります。 –

0

self.tableView.dataSource = selfのようなTableViewオブジェクトに設定する必要があるため、このエラーがスローされます。この後、あなたが言及したように、UITableViewnumberOfSectionsを含む)のすべての方法を自由に使うことができます。

関連する問題