質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

3866閲覧

1画面内で複数のTableViewを制御したい

msd

総合スコア95

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/03/28 09:08

テーブルの要素(行)をSwift内で登録したいのです。
以下の例では、leftMenuの内容を出力しているのですが、ViewController内にUItableviewを複数配置する場合はどのようにすればいいのか分からず困っています。

swift

1import UIKit 2 3class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 4 5 6 @IBOutlet weak var tblSample: UITableView! 7 @IBOutlet weak var lblTapped: UILabel! 8 9 let leftMenu = [“apple”, “banana”, “cherry”, “dragon fruit”,] 10 11 // ここの内容を表示させたい 12 @IBOutlet weak var tblSample2: UITableView! 13 let rightMenu = [“xxx”, “yyy”, “zzz”,] 14 15 override func viewDidLoad() { 16 super.viewDidLoad() 17 18 tblSample.delegate = self 19 tblSample.dataSource = self 20 21 } 22 23 override func didReceiveMemoryWarning() { 24 super.didReceiveMemoryWarning() 25 } 26 27 // ★1 leftMenuの内容を返しているが、複数の場合はどうするのか? 28 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 29 return leftMenu.count 30 } 31 32 // ★2 33 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 34 35 let cell = tableView.dequeueReusableCell(withIdentifier: “beginnerCell”, for: indexPath) 36 cell.textLabel?.text = leftMenu[indexPath.row] 37 38 return cell 39 } 40 41 // ★3 42 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 43 lblTapped.text = leftMenu[indexPath.row] 44 } 45 46 47}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2019/03/28 09:14

実際に試してみて、各種delegateでどの様な違いがあるか確認してみると良いのではないでしょうか。まぁ、delegateは必ずしも想定するControllerで実装する必要もないかと思いますが。
guest

回答2

0

自己解決

以下の手順で期待通りの動きになりました!

Storyboardの各TableViewにtagを設定
dataSource,delegateを設定
各関数でtagの値を判定(以下の例)

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if(tableView.tag == 0){
return leftMenu.count
else {
return rightMenu.count
}
}

dataSourceだけでも表示だけなら可能

投稿2019/03/28 10:36

msd

総合スコア95

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

やりたいのはこういうことでしょうか。

swift

1@IBOutlet weak var tblSampleA: UITableView! 2@IBOutlet weak var tblSampleB: UITableView! 3let MenuA = [...] 4let MenuB = [...] 5 6func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 7 if tableView == tblSampleA { 8 //MenuAを使用 9 } else if tableView == tblSampleB { 10 //MenuBを使用 11 } 12}

投稿2019/03/28 10:33

dsuzuki

総合スコア1682

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問