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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

2191閲覧

【Swift】全ての画面操作を無効にする方法

Iwasho

総合スコア31

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2022/03/06 01:57

前提・実現したいこと

NavigationBarとTabBarがあるViewControllerでホームボタン以外の操作を無効にする方法はありますか?

試したこと

Swift

1view.isUserInteractionEnabled = false 2navigationController?.navigationBar.isUserInteractionEnabled = false 3navigationController?.interactivePopGestureRecognizer?.isEnabled = false 4tabBarController?.tabBar.isUserInteractionEnabled = false

んーって感じです。
この記事iOS 13で操作できないように画面(View)をロックするの方法ではできませんでした。

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

Xcode Version 13.2.1

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

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

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

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

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

hoshi-takanori

2022/03/06 05:47

その記事では AppDelegate を使ってますが、最近は SceneDelegate を使うようになってますからね…。 self.view.window?.beginIgnoringInteractionEvents() とかでいけるかも?
Iwasho

2022/03/06 12:24

できました! ありがとうございます!
guest

回答1

0

自己解決

hoshi-takanori様が教えてくださったコードで機能しました。

Swift

1extension UIWindow { 2 func beginIgnoringInteractionEvents() { 3 let overlayView = UIView(frame: bounds) 4 overlayView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 5 overlayView.tag = 10000 6 addSubview(overlayView) 7 } 8 9 func endIgnoringInteractionEvents() { 10 viewWithTag(10000)?.removeFromSuperview() 11 } 12} 13 14//無効にする 15view.window?.beginIgnoringInteractionEvents() 16 17//有効にする 18view.window?.endIgnoringInteractionEvents()

投稿2022/03/06 12:29

編集2022/03/06 12:36
Iwasho

総合スコア31

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問