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

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

新規登録して質問してみよう
ただいま回答率
85.50%
iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

Q&A

0回答

314閲覧

tableViewCellでセルがタップされたら文字だけの説明ページに遷移させたい

Ozuran

総合スコア7

iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/09/11 09:16

編集2022/01/12 10:55

テキスト(文章)メインのアプリの作り方を勉強しております。

今回の質問です。

現在できている事
tableViewを用いてセルを複数個表示(最初の画面)させ、そのうちいずれかのセルをタップした時に更に複数個のセルを表示(2枚目の画面)させる。

わからない(解決したい)事
2枚目の画面のいずれかのセルをタップしたら、text(文章)だけにページに遷移させたい。


1:一枚目の画面に[果物、スポーツ、アニメ、野菜、映画、飲み物]のようにセルがあり"果物"をタップしたら2枚目の画面に遷移して[リンゴ、ブドウ、バナナ、オレンジ、レモン、ピーチ]と表示される。

2:2枚目の画面の"リンゴ"をタップしたら、"リンゴは青森県産で甘みがあり、〜で〇〇な〇〇である"という文字だけの詳細を説明するページに遷移させたい。

2つあるviewControllerのコードは下記の通りです。

1枚目のファイル

import

1 2class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 3 4 // テーブルビュー 5 @IBOutlet var tableView: UITableView! 6 7 // セルの要素をあらかじめ決めうち 8 let someArray: [String] = ["果物", "スポーツ", "アニメ", "野菜", "映画", "飲み物"] 9 10 // 選択されたセルを覚える変数 11 var chosenCell: Int! 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 // Do any additional setup after loading the view, typically from a nib. 16 17 // テーブルビューにTableViewCellを登録 18 tableView.register(UINib(nibName: "TableViewCell", bundle: nil),forCellReuseIdentifier: "cell_01") 19 20 tableView.delegate = self 21 tableView.dataSource = self 22 23 } 24 25 override func didReceiveMemoryWarning() { 26 super.didReceiveMemoryWarning() 27 // Dispose of any resources that can be recreated. 28 } 29 30 // セルの数を指定 31 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 32 // someArrayの中身の数だけセルを表示 33 return someArray.count 34 } 35 36 // 各セルの要素を指定 37 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 38 // UITableViewCellのインスタンスを生成 39 let cell = tableView.dequeueReusableCell(withIdentifier: "cell_01", for: indexPath) as! TableViewCell 40 41 // セルのUILabelに配列の中身を順に表示 42 cell.label.text = someArray[indexPath.row] 43 44 return cell 45 } 46 47 // セルが選択された時に呼ばれる 48 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 49 // 選択されたcellの番号を記憶 50 chosenCell = indexPath.row 51 // 画面遷移の準備 52 performSegue(withIdentifier: "toSecondViewController",sender: nil) 53 } 54 55 // Segue 準備 56 override func prepare(for segue: UIStoryboardSegue, sender: Any!) { 57 // 遷移先のViecControllerのインスタンスを生成 58 let secVC: secondViewController = (segue.destination as? secondViewController)! 59 // secondViewControllerのgetCellに選択された画像を設定する 60 secVC.getCell = chosenCell 61 62 } 63 64}

2枚目

import

1class secondViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 2 3// テーブルビュー 4@IBOutlet var secondTableView: UITableView! 5 6// ViewControllerから選択されたCell番号を受け取る変数 7var getCell: Int! 8 9// セルの要素をあらかじめ決めうち 10// 果物 11let fruitArray: [String] = ["リンゴ", "ブドウ", "バナナ", "オレンジ", "レモン", "ピーチ"] 12// スポーツ 13let sportArray: [String] = ["サッカー", "野球", "ラグビー", "卓球"] 14// アニメ 15let animeArray: [String] = ["ポ", "プ", "テ", "ピ", "ピ", "ッ", "ク"] 16// 野菜 17let vegetableArray: [String] = ["スイカ", "トマト", "キャベツ", "キュウリ", "大豆", "レタス", "サニーレタス"] 18// 映画 19let movieArray: [String] = ["ハリーポッター", "スターウォーズ", "アイアンマン", "スパイダーマン", "ゴーストバスターズ", "ブラックホークダウン", "タイタニック", "バックトゥーザフューチャー", "ジュラシックパーク"] 20// 飲み物 21let drinkArray: [String] = ["コーラ", "烏龍茶"] 22 23// 選択されたジャンルの配列の長さ変数 24var arrayLength: Int! 25 26override func viewDidLoad() { 27 super.viewDidLoad() 28 29 // テーブルビューにTableViewCellを登録 30 secondTableView.register(UINib(nibName: "secondTableViewCell", bundle: nil),forCellReuseIdentifier: "cell_02") 31 32 secondTableView.delegate = self 33 secondTableView.dataSource = self 34 35 // 選択されたジャンルによってセルの数を変える 36 // getCellの中身が・・・ 37 switch getCell { 38 // 0のとき 39 case 0: 40 arrayLength = fruitArray.count 41 // 1のとき 42 case 1: 43 arrayLength = sportArray.count 44 // 2のとき 45 case 2: 46 arrayLength = animeArray.count 47 // 3のとき 48 case 3: 49 arrayLength = vegetableArray.count 50 // 4のとき 51 case 4: 52 arrayLength = movieArray.count 53 // 5のとき 54 case 5: 55 arrayLength = drinkArray.count 56 default: 57 break 58 } 59 60} 61 62override func didReceiveMemoryWarning() { 63 super.didReceiveMemoryWarning() 64 // Dispose of any resources that can be recreated. 65} 66 67 68// セルの数を指定 69func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 70 // someArrayの中身の数だけセルを表示 71 return arrayLength 72} 73 74// 各セルの要素を指定 75func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 76 // UITableViewCellのインスタンスを生成 77 let cell = secondTableView.dequeueReusableCell(withIdentifier: "cell_02", for: indexPath) as! secondTableViewCell 78 79 // 選択されたジャンルによってセルの中身を変える 80 // getCellの中身が・・・ 81 switch getCell { 82 // 0のとき 83 case 0: 84 // セルのUILabelに配列の中身を順に表示 85 cell.secondLabel.text = fruitArray[indexPath.row] 86 // 1のとき 87 case 1: 88 cell.secondLabel.text = sportArray[indexPath.row] 89 // 2のとき 90 case 2: 91 cell.secondLabel.text = animeArray[indexPath.row] 92 // 3のとき 93 case 3: 94 cell.secondLabel.text = vegetableArray[indexPath.row] 95 // 4のとき 96 case 4: 97 cell.secondLabel.text = movieArray[indexPath.row] 98 // 5のとき 99 case 5: 100 cell.secondLabel.text = drinkArray[indexPath.row] 101 default: 102 break 103 } 104 105 return cell 106} 107}

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

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

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

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

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

fuzzball

2018/09/12 00:09

コードは ``` で囲って下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問