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

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

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

436閲覧

アラートで入力しテキストの表示について

退会済みユーザー

退会済みユーザー

総合スコア0

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/02/26 00:17

編集2018/02/26 00:38

swift

1import UIKit 2 3class ViewController: UIViewController { 4 5 //+ボタン 6 @IBAction func btr(_ sender: Any) { 7 alert() 8 } 9 10 //ラベルについて 11 func label(){ 12 let addLabel = UILabel(frame: CGRect(x: 130, y:300, width: 100, height:20)) 13 //addLabel.text = "labelです" 14 addLabel.backgroundColor = UIColor.lightGray 15 addLabel.font = UIFont.systemFont(ofSize: 30) 16 self.view.addSubview(addLabel) 17 } 18 19 func alert(){ 20 let alert = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: .alert) 21 22 // OKボタンの設定 23 let okAction = UIAlertAction(title: "OK", style: .default, handler: { 24 (action:UIAlertAction!) -> Void in 25 26 // OKを押した時入力されていたテキストを表示 27 if let textFields = alert.textFields { 28 29 // アラートに含まれるすべてのテキストフィールドを調べる 30 for textField in textFields { 31 addlabel = textField.text 32 print(textField.text!) 33 } 34 } 35 }) 36 alert.addAction(okAction) 37 38 // キャンセルボタンの設定 39 let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) 40 alert.addAction(cancelAction) 41 42 // テキストフィールドを追加 43 alert.addTextField(configurationHandler: {(textField: UITextField!) -> Void in 44 textField.placeholder = "テキスト" 45 }) 46 47 alert.view.setNeedsLayout() // シミュレータの種類によっては、これがないと警告が発生 48 49 // アラートを画面に表示 50 self.present(alert, animated: true, completion: nil) 51 52 } 53 54 override func viewDidLoad() { 55 super.viewDidLoad() 56 } 57 58 override func didReceiveMemoryWarning() { 59 super.didReceiveMemoryWarning() 60 // Dispose of any resources that can be recreated. 61 } 62 63 64}

アラートで入力したテキストをlabelにしたいのですがどのようにすればいいか分からないです。今の所,コード上でlabelを表示させる事とalertを呼び出す事は出来ます。
addlabel = textField.textの部分でCannot assign to property: 'addlabel' is a methodこのようなエラーが表示されています。

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

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

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

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

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

fromageblanc

2018/02/26 01:46

//addLabel.text = "labelです" ってあるのに。。。
退会済みユーザー

退会済みユーザー

2018/02/26 13:21

addLabel.text = "labelです"ですと表示されるラベルはlabelです。にしかならないので自分としてはアラートで入力したテキストをラベルに反映させたいです。
fromageblanc

2018/02/27 00:33

文字列よりも、左側に注目です。
退会済みユーザー

退会済みユーザー

2018/02/27 02:09

左側を見てみたのですがaddLabel.textのどこがダメなのか分からないです。outletでlabelとtextfieldを作っていればaddLabel.text = textField.textにすれば入力したテキストがアラートに表示できるんですけどalertでのtextFieldの場合は同じようにするとエラーが出てしまいます。
退会済みユーザー

退会済みユーザー

2018/02/27 02:37

解決できました。
退会済みユーザー

退会済みユーザー

2018/02/27 02:42

一応実行して確認出来たのですがこのコードでいいのか見てもらえませんか?またこのコードより簡潔にできるものがあれば教えて頂きたいです。
fromageblanc

2018/02/27 03:09

さらっと「addLabel.text = textField.text にすれば」って書いてますけど、最初に提示されてるコードは「addlabel = textField.text」ですよ。
退会済みユーザー

退会済みユーザー

2018/02/27 03:45

すいません。最初に提示してたものから変更を加えたものをお伝えしていなかったのですね。すいませんでした。
退会済みユーザー

退会済みユーザー

2018/02/28 14:18

先日は質問について教えた頂きありがとうございました。マナー違反かもしれませんがこちらの質問で分からなくて困っています。もし宜しければ教えて頂けないでしょうか?https://teratail.com/questions/115304
guest

回答1

0

ベストアンサー

以下のコードによってやりたいことが出来ました。

swift

1import UIKit 2 3class ViewController: UIViewController { 4 5 var item = String() 6 var add = UILabel() 7 //+ボタン 8 @IBAction func addlabel(_ sender: Any) { 9 10 alert() 11 //label() 12 } 13 14 //ラベルについて 15 func label(){ 16 add = UILabel(frame: CGRect(x: 130, y:250, width: 100, height:20)) 17 //ラベルの大きさ、座標指定 18 19 add.text = "labelです" 20 //文字を変更 21 22 add.backgroundColor = UIColor.lightGray 23 24 add.font = UIFont.systemFont(ofSize: 30) 25 //文字の大きさ 26 27 add.textColor = UIColor.black 28 //文字カラー 29 30 add.sizeToFit() 31 //文字数にあわせてlabelの大きさを変更(サイズが文字にフィットする) 32 33 self.view.addSubview(add) 34 //実際にviewに見える形でlabelが出現する 35 } 36 37 func alert(){ 38 // テキストフィールド付きアラート表示 39 40 let alert = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: .alert) 41 42 // OKボタンの設定 43 let okAction = UIAlertAction(title: "OK", style: .default, handler: { 44 (action:UIAlertAction!) -> Void in 45 46 // OKを押した時入力されていたテキストを表示 47 if let textFields = alert.textFields { 48 49 // アラートに含まれるすべてのテキストフィールドを調べる 50 for textField in textFields { 51 self.label() 52 self.add.text = textField.text! 53 print(textField.text!) 54 } 55 } 56 }) 57 alert.addAction(okAction) 58 59 // キャンセルボタンの設定 60 let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) 61 alert.addAction(cancelAction) 62 63 // テキストフィールドを追加 64 alert.addTextField(configurationHandler: {(textField: UITextField!) -> Void in 65 textField.placeholder = "テキスト" 66 }) 67 68 alert.view.setNeedsLayout() // シミュレータの種類によっては、これがないと警告が発生 69 70 // アラートを画面に表示 71 self.present(alert, animated: true, completion: nil) 72 73 } 74 75 override func viewDidLoad() { 76 super.viewDidLoad() 77 78 } 79 80 override func didReceiveMemoryWarning() { 81 super.didReceiveMemoryWarning() 82 // Dispose of any resources that can be recreated. 83 } 84 85 86} 87 88

投稿2018/02/27 02:40

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問