SwiftUI

SwiftUI

【SwiftUI】NavigationStack (iOS16、iPadOS16以降)

iOS16が正式にリリースされたのでNavigationStackについて見ていきましょう。 NavigationStackとは NavigationStackはiOS16以降で使用できるNavigationViewに代わるものです。これに...
SwiftUI

【SwiftUI】NavigationStackが勝手にルートに戻る

iOS16から使えるNavigationStackですが勝手にルートに戻る場合がありました。基本的には問題ありませんが、初心者が戸惑う場合や、NavigationViewを無理やり使っていたものを置き換えると起こる場合があるのでメモを残して...
SwiftUI

【SwiftUI】静的 Home Screen Quick Actions(アプリアイコン長押しメニュー)

Home Screen Quick Actionsの実装方法についてです。 Home Screen Quick Actionsではアプリアイコンをロングタップする事で表示されるコンテキストメニューに項目を追加する事が出来ます。この項目から起...
SwiftUI

【SwiftUI】EnvironmentValueを追加する

SwiftUIではEnvironmentValuesが多数用意されており、Viewから@Environmentで参照する事が出来ます。 システムで設定された値を読み取ったり、設定した値が子Viewで読み取る事ができ非常に便利です。 今回はこ...
SwiftUI

【SwiftUI】Scene間のEnvironmentObjectの共有・専有(ObservedObject 、StateObject)

iPadOSなどでは1つのアプリで同時に複数のウィンドウを開くことが出来ます。このウィンドウ毎にSceneが割り当てられいています。Sceneが複数ある場合はEnvironmentObjectの扱いに気をつける必要があります。 Enviro...
SwiftUI

【SwiftUI】ScenePhaseの使い方とSceneDelegateとの比較

現在のSwiftUIの標準ではScenePhaseを使ってSceneの変化を検知します。SceneDelegateと比較すると随分シンプルになりました。 active、inactive、backgroundの動作確認をするようなコードで紹介...
SwiftUI

【SwiftUI】SceneDelegateを使う方法(2パターン)

SwiftUIでは2系からSceneDelegateが使用されなくなりました。しかし自分で追加することでSceneDelegateの使用は可能です。 調べるとおおよそ2パターン見受けられるのでまとめておきます。 共通部分 AppとScene...
SwiftUI

【SwiftUI】ScenePhaseでactiveが来ない場合がある

SwiftUIでアプリの状態の変化に使用するScenePhaseですが、起動時にonChangeにactiveで来ない場合がありました。 基本的にデバッガで起動した場合は毎回activeが来ていましたが、実機で終了と起動を繰り返しテストして...
SwiftUI

【SwiftUI】非操作時にホームバーを非表示にする方法(HomeIndicatorAutoHidden)

全画面をフルに使いたいアプリでは邪魔になりがちなホームバー(ホームインジケーター・HomeIndicator)ですが、現在はSwiftUIの標準機能としては非表示にする方法がありません。 従ってUIViewControllerのprefer...
SwiftUI

【SwiftUI】toolbar(keyboard)が表示されない

iOS15から使用できるkeyboardに表示するtoolbarは、他の位置とは異なり基本的にどこでも使用できます。しかし表示されないパターンがありましたのでメモを残しておきます。 表示不可のパターン SceneDelegateを使用しNa...