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

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

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

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

Q&A

解決済

1回答

3262閲覧

TextFieldの値を別ファイルのLabelに表示する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

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

0グッド

0クリップ

投稿2018/05/30 14:58

編集2018/06/13 12:19

コードのみで作成しています。ですのでStoryBoardは使っておりません。

UItextFieldに入力した文字の値を、別ファイル内のUILabelに反映させる方法が上手くいきません。

試している方法としては、まずボタンをタップして最終的に下記コードのViewControllerクラス内の saveメソッドが呼び出されます。

class ViewController: UIViewController, UITextFieldDelegate, UITextViewDelegate { //UITextFieldのインスタンスなど省略しています... @objc func save(_ sender: UITapGestureRecognizer) { saveButton.endEditing(true) let a = GoodCell() a.labela = userName.text! self.dismiss(animated: true, completion: nil) print("タップ キーボードとモーダルビュー 閉じた") } 省略... }

その後、別のファイルである下記コードのGoodCellクラス内にあるUILabelに、上記コード⬆︎のクラス内にあるUITextFieldの文字の値が入る様にしたいのですが出来ていません。
このGoodCellはUICollectionViewControllerに登録されたCellです。

class GoodCell: UICollectionViewCell { override init(frame: CGRect) { super.init(frame: frame) data() } ...省略してます //空の変数を作り、nameLabelに代入してる? var labela = "" let nameLabel: UILabel = { let l = UILabel() l.backgroundColor = .white l.translatesAutoresizingMaskIntoConstraints = false return l }()   func data() {    addSubview(nameLabel) nameLabel.text = labela } 省略... }

調べている中でUICollectionViewControllerの場合の例がなく、質問させて頂きます。

(追記)6/13
未だに実現できていません。
入力が完了した後発火する様に、UITextFieldに入力した値を var str:String?へ渡し

var a:HugaCollectionViewCell = HugaCollectionViewCell() a.str = UITextField.text

それをUILabel.text = strという形でリレーの様に渡したいのですが、未だにラベルに表示できていません。

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

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

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

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

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

guest

回答1

0

ベストアンサー

値の渡す方法としては、バケツリレーの様に渡していく方法とどこからでも参照できる場所において参照する方法の2種類がざっくりあると思います。

バケツリレーはDelegate通知メソッドの引数で渡したりプロパティで渡してくことになると思います。

どこからでも参照できる場所というのは、グローバル変数SingletonUserDefaults、DataBase, Keychainなどに保存して、必要なところで読み込むことになります。

saveという名前があるのでしたら、永続化して使うところで呼ば出すのが良いかも知れませんね。

投稿2018/05/30 22:53

編集2018/05/30 22:53
_Kentarou

総合スコア8490

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

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

退会済みユーザー

退会済みユーザー

2018/05/31 14:39 編集

仰るDatabase<<の部分についてお伺いします。 本文のコードの流れは、saveメソッド内でインスタンス化した別のメソッドを呼び出します。そのメソッドでFirebase Firestoreのデータベースに保存する(つまり参照?)ように書いています。 Firebase Firestoreコンソールで確認できる参照したデータは、ユーザーが何度でも変更可能な"ユーザーネーム"などです。 これだと永続化には適していませんか?
退会済みユーザー

退会済みユーザー

2018/06/12 10:22 編集

低評価をされた方も今回の回答が分かっていない様ですが、私も引き続き回答を求めています。
退会済みユーザー

退会済みユーザー

2018/06/13 12:21 編集

未だに実現できていません。 入力が完了した後発火する様に、UITextFieldに入力した値を var str:String?へ渡し var a:HugaCollectionViewCell = HugaCollectionViewCell() a.str = UITextField.text それをUILabel.text = strという形でリレーの様に渡したいのですが、未だにラベルに表示できていません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問