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

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

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

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

Swift

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

Q&A

1回答

447閲覧

TextFild(3行)それぞれ入力した値を追加ボタンによって、tableviewへ3行反映させたい

nlmr_c

総合スコア1

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/05/29 17:06

イメージ説明
上記イメージのように、3行にそれぞれテキストを入力してTebleviewへ3行ずつ並べるメモを作りたいですが、
コードのつなぎ方を教えていただきたいです。

・xcode11
・swift5

ViewController

import

1 2class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { 3//クラスの継承を追加 4 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 5 //戻り値の設定(表示するcell数) 6 return MemoFile.count 7 } 8 //UITableView、cellForRowAtの追加(表示するcellの中身を決める) 9 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 10 //変数を作る 11 let MemoCell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "MemoCell", for: indexPath) 12 //変数の中身を作る 13 MemoCell.textLabel!.text = MemoFile[indexPath.row] 14 //戻り値の設定(表示する中身) 15 return MemoCell 16 } 17 override func viewDidLoad() { 18 super.viewDidLoad() 19 //追加画面で入力した内容を取得する 20 if UserDefaults.standard.object(forKey: "MemoList") != nil { 21 MemoFile = UserDefaults.standard.object(forKey: "MemoList") as! [String] 22 } 23 } 24} 25コード

AddController

import

1var MemoFile = [String]() 2 3class AddController: UIViewController { 4 @IBOutlet weak var FirstTextField: UITextField! 5 @IBOutlet weak var SecondTextField: UITextField! 6 @IBOutlet weak var ThirdTextField: UITextField! 7 @IBAction func AddButton(_ sender: Any) { 8 9 //変数に入力内容を入れる 10 MemoFile.append(FirstTextField.text!) 11 MemoFile.append(SecondTextField.text!) 12 MemoFile.append(ThirdTextField.text!) 13 14 //追加ボタンを押したらフィールドを空にする 15 FirstTextField.text = "" 16 SecondTextField.text = "" 17 ThirdTextField.text = "" 18 19 //変数の中身をUDに追加 20 UserDefaults.standard.set(MemoFile, forKey: "MemoList" ) 21 } 22 //最初からあるコード 23 override func viewDidLoad() { 24 super.viewDidLoad() 25 } 26 27 //最初からあるコード 28 override func didReceiveMemoryWarning() { 29 super.didReceiveMemoryWarning() 30 } 31} 32 33コード

試したこと、ViewcontrollerのnumberOfRowsInSectionのreturn MemoFile.countを3にして
cellForRowAtのところで、それぞれ3つのtextFildに関する値を入れてビルドする。

今出ているエラー

イメージ説明

イメージ説明

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

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

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

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

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

guest

回答1

0

追加してアプリ再起動で表示させたいなら
viewDidLoad でTableViewを更新します。

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { // 省略 override func viewDidLoad() { super.viewDidLoad() //追加画面で入力した内容を取得する if UserDefaults.standard.object(forKey: "MemoList") != nil { MemoFile = UserDefaults.standard.object(forKey: "MemoList") as! [String] } // データセットしたらTableViewを更新 self.tableView.reloadData() } }

追加して戻った際に表示させたいなら
viewWillAppear や 'viewDidAppear' で
データを再度取得してTableViewを更新します。
この場合はviewDidLoadでの更新は不要ですね。

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { // 省略 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) //追加画面で入力した内容を取得する if UserDefaults.standard.object(forKey: "MemoList") != nil { MemoFile = UserDefaults.standard.object(forKey: "MemoList") as! [String] } // データセットしたらTableViewを更新 self.tableView.reloadData() } }

ViewControllerのライフサイクルは理解してますかね。
モーダル遷移する際は下記も参考です。
https://qiita.com/fummicc1_dev/items/a30e3cbfbf1148b0ec84

投稿2020/05/29 19:29

TakuyaAso

総合スコア1361

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

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

nlmr_c

2020/05/30 09:01

返信ありがとうございます。反映はできませんでした。
TakuyaAso

2020/05/30 10:19

そうですか。残念でした。
nlmr_c

2020/05/30 11:33

Type of expression is ambiguous without more context こういったエラーが出ます・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問