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

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

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

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

Swift

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

Q&A

解決済

1回答

2931閲覧

SwiftUIのアラートにTextFieldを追加する方法

kentashx

総合スコア15

Xcode

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

Swift

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

0グッド

1クリップ

投稿2020/01/28 01:35

実現したいこと

SwiftUiで、ユーザーがボタンをタップした時、文字を入力させる画面を表示させたいです。(お絵かきコラボさんから拝借しました)
イメージ説明

試したこと

Alert構造体にTextFieldを追加する方針で考えたのですが、対象のプロパティが見つかりませんでした。
UIKitを使った実装やGeometryReaderを使った実装で似たようなことをしている実装がありました。
GeometryReader

質問

SwiftUIで実現したいことができればいいのですが、どの方針を選ぶべきがわからず迷っています。
このような実装に心当たりがあれば、ご教示お願いします。

1.Alertを使っていくという方針が間違っているのでしょうか?
2.UIKitをSwiftUIに適応させていくという方針とGeometryReaderを使っていく方針だとどちらが良いか?(別の方針があれば教えてもらいたいです)

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

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

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

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

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

guest

回答1

0

ベストアンサー

1.Alertを使っていくという方針が間違っているのでしょうか?

今のAlertにそんな機能はないので、少なくとも今はAlertでやるのは無理だろうと思います。
将来は機能追加されるかもしれませんが、本当に追加されるかどうかはわかりません。

2.UIKitをSwiftUIに適応させていくという方針とGeometryReaderを使っていく方針だとどちらが良いか?(別の方針があれば教えてもらいたいです)

記事の内容を見ると、GeometryReaderを使う方針というよりも、
GeometryReaderは、単に画面全体の7割のサイズを計算するために
使っているだけなので、例えば幅300の固定幅のAlertを表示すれば
いいのであれば、widthに300の固定値を指定すればいいので
別にGeometryReaderを使う必要もないと思います。
記事の主旨は、要するに今のAlertではできないので、
VStackとButtonとTextFieldを組み合わせて
自分でAlert画面のようなViewを作って表示したらいいんじゃないの?
ということだと思います。

SwiftUIからUIKitのUIAlertControllerを利用する手もありますが、
どちらがいいのかと聞かれても、あなたが何をしたいかによるので
人に聞くことではないと思います。
両方やってみて、実際にどのように動作するのか確認し、自分がやりたいことを
実現できるものを選べば良いと思います。
(勉強のためにやっているのなら、どちらの方法がどのように動作するのか
理解するために、やはり両方実装して動作確認すべきだと思います。)

そもそも、あなたがなぜSwiftUIを使おうとしているのかわかっていませんが、
勉強のためとか、興味があるからとかでなく、何か作りたいアプリがあって
やっているのであれば、SwiftUIを使うという方針自体に疑問を持った方が
よいかもしれません。

https://www.tokoro.me/posts/swiftui-hackathon/

の「SwiftUIはいつから使うべき?」がとても参考になります
(私の感触も同じです)が、今はまだまだ人柱感が強すぎで、
今年の6月のWWDCで実用化を目指したベータ版がリリースされ、
9月にそれが正式リリースされる感じだと思います。
誰にでもお勧めできるようになるのは、さらに1年後だと思います。

投稿2020/01/30 17:20

TakeOne

総合スコア6299

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問