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

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

新規登録して質問してみよう
ただいま回答率
85.49%
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

解決済

1回答

3701閲覧

TextFieldの文字をLabelに表示したい

hik_

総合スコア42

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クリップ

投稿2019/01/01 12:07

編集2019/01/01 12:20

前提・実現したいこと

ViewControllerにあるTextFieldに入力された文字をnextViewControllerにあるLabelに表示するという機能を実装したいです。

発生している問題・エラーメッセージ

どう実装すれば良いか分からず調べているのですが、現状分かった事は
TextFieldに入力された文字をLabelに表示するには

label.text = textField.text

で実装出来る事、そしてnextViewControllerのLabelに表示するにはビュー間で値を受け渡ししなければいけなく、

override func prepare(for segue: UIStoryboardSegue, sender: Any?)

を使うとnextViewControllerに受け渡しが出来る。
という2点と、override func prepare(for segue: UIStoryboardSegue, sender: Any?)の中の処理と、nextViewController側で行う処理が出来れば実装できるかもしれないという事が分かったのですが、今も調べているのですが、現段階で2点の実装方法が分かりません。
ご教示頂けると幸いです。

###全体のコード

import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "NextView" { let nextViewController = segue.destination as! nextViewController } } }

補足情報(FW/ツールのバージョンなど)

Swift4 Xcode10

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

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

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

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

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

y_waiwai

2019/01/01 12:16

現状のコードを提示してください
hik_

2019/01/01 12:23

全体のコードを追加しました。肝心な全体のコードを記載していなく申し訳ありませんでした。 情報の不足、間違い等ありましたら、迅速に追加させて頂きます。 宜しくお願いします。
guest

回答1

0

ベストアンサー

やりたいことは以下のリンクで解決できると思います、試してみてください。

Swift初心者メモ Storyboardのsegueで遷移した画面に値を渡すす

投稿2019/01/01 12:21

_Kentarou

総合スコア8490

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

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

hik_

2019/01/01 13:03

ご回答ありがとうございます。 実装してみたのですが、 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "NextView" { let nextViewController:nextViewController = segue.destinationViewController as nextViewController // エラー UIViewController' is not convertible to 'nextViewController'; did you mean to use 'as!' to force downcast? nextViewController.sendText = self.textField.text // エラー Value of optional type 'String?' must be unwrapped to a value of type 'String' } } } とエラーが起こりました、エラーを押してエラーの指示通り修正してみたのですが、エラーが起きたままでした。ご返信お待ちしています。
_Kentarou

2019/01/01 13:16 編集

うむ、確かにちょっと古い記事でしたのでそのままでは使えないですね。 > エラーを押してエラーの指示通り修正してみたのですが、エラーが起きたままでした。 自分でも上記のコードをコピーしてみましたが、エラーはでますが自動の変換を押していくとエラーはなくなりました。これはあくまでもXcodeがコンパイルが通るように変換しているものなので、変換の中身を理解しないまま使うことはおすすめできません。 なぜそのようになったのか自分で調べてみてください。 エラーが出ないように自動で修正されたコードは以下になります。 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "NextView" { let nextViewController:nextViewController = segue.destination as! nextViewController nextViewController.sendText = self.textField.text ?? "" } }
hik_

2019/01/01 14:06

自動で修正されたコードでも実装できないのですが、一般的に値の受け渡しというのは、prepareを使うのが一般的なのでしょうか?プログラミング自体初心者で、予想以上にprepareを使うのが難しく、AppDelegateやUserDefaultsも受け渡しで使えるとみたのですが、prepareが一番適切なのでしょうか?
hik_

2019/01/01 14:24

ご返信ありがとうございます。手を動かして試行錯誤してみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問