【SwiftUI】NavigationBarの前面にviewを表示する方法
・課題
NavigationLinkで画面遷移すると、遷移後の画面がNavigationBarの下に配置される。
今回のアプリでは、遷移後の画面でユーザが画像を配置し、ドラッグでその画像を自由に移動できるGestureを実装したが、NavigationBarの位置に来ると、画像をドラッグできなくなる(移動できなくなる)。
*図の説明:
黄色:追加した画面の背景
黄色の前方のView:上部にNavigationBarがある(つまり、被ってる)
・解決策
よく考えると、NavigationBarを最前面にしないと、BarItemをタップできない。。。
・Work Around
(1) NavigationBarのタイトルのスタイルをinlineにして小さくする
func navigationBarTitle(_ titleKey: LocalizedStringKey, displayMode: NavigationBarItem.TitleDisplayMode) -> some View
(2) 条件に応じて、一時的にNavigationBarを非表示にする(フラグを利用)
func navigationBarHidden(_ hidden: Bool) -> some View
(3) AndroidのToastのようなUIを実装する
(4) 遷移元の画面に表示内容を実装し、NavigationLinkを経由しない