1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SwiftUI disabledモディファイアの使い方

Last updated at Posted at 2024-05-12

disabledモディファイアとは

SwiftUIで利用されるViewのプロパティで、そのViewが無効になるかどうかを制御します。
具体的にはViewが無効化されると、ユーザーがそのViewを操作できなくなります。

ユーザーに対して操作が許可されていないことを明示的に示す場合や、特定の条件下でのみ操作を許可する場合などに便利です。

公式ドキュメント:
https://developer.apple.com/documentation/swiftui/view/disabled(_:)

disabledに辿り着いた背景

TextFieldが空の状態で、画面遷移するボタンを押したら警告の通知が表示されるようにしたい。

Swift
.onTapGesture {
         if inputText.isEmpty { 
             showAlert = true
             }
        }

上記の処理だけでいけるかと思いきや、
通常通りボタンが押されてしまい、アラートが表示されない...
何かがおかしい...

不具合の原因

Viewにdisabledモディファイアが付いていない為、ボタンが常に有効な状態のままとなっていました。
つまり、TextFieldが空であってもボタンをタップすることができてしまうということ。

いたって単純ですが、知らないと悩む箇所ですよね。

主な使い方

通常のViewに .disabled(true) もしくは .disabled(false) を設定することで、
そのViewを手動で無効化または有効化できます。

ボタンの場合、条件によってボタンを無効にすることがあります。
たとえば、今回のようにテキストフィールドが空の場合にボタンを無効にするといった場合です。

このような場合には、ボタンに .disabled(condition) を設定し、condition の値に応じてボタンを無効化するかどうかを制御します。

Swift
Button("Submit") {
    // Submitボタンのアクション
}
.disabled(inputText.isEmpty) // inputTextが空の場合はボタンを無効化

参考記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?