SwitUI Truble Shooting 2:ナビゲーション後TabBarが消えない
7616 ワード
📌 ケース
SWIFTUIでは、画面間の移動はNavigationViewとNavigationLinkで行われる.スクリーン、すなわち、各ビューはpush/popで組織されています.
一方、最下位層は最もよく知られている最も一般的なアプリケーションフロー構成方式であり、TabViewによってSwitUIで実現される.
NavigationViewとTabViewでアプリケーションフレームワークを構築する過程で、NavigationLinkで次の画面に入ると、次の欄は消えずに残り続ける現象が発見されました.
💻 ソリューション
想像以上に時間がかかりましたが、Hierarchyを知ってからは思ったより解決が簡単でした.
元のコードはこのように書かれています.
しかし、私(実際、デザイナー)が望んでいる構造は以下の通りです.
実際、市場に出回っている多くのアプリケーションがこのソフトウェアを採用しているのは、ユーザーがこのソフトウェアをもっと好きだからかもしれません.
TabView上にNavigationViewが作成され、NavigationView内でNavigationLinkでスキップした画面もTabView上に作成されます.そのため、TabBarを残すしかない.
したがって、コードは次のように変更されます.
画面が移動すると、下部のバーが消えやすいのが見えます.
📌 ポスト
言語の勉強を始めたばかりで、言語の文法や構造がよく分からないので、例題コードを見てから勉強することがよくあります.
今回の故障シュートも、事実上、当たり前だと思っていたら、TabViewとNavigationViewがどのように構築されているのか理解していなければ、このような構造を把握できないだけでなく、NavigationLink内でNavigationViewを宣言し、不要なナビゲーションバーを作成することもできます(恥ずかしいですが、これは私の物語です).
SWIFTUIは思ったより面白かったです
1年半くらい使ったフラッシュと差が少ないせいか.早くこの怠惰を克服してFlutterが感じていることも整理しておきましょう
SWIFTUIでは、画面間の移動はNavigationViewとNavigationLinkで行われる.スクリーン、すなわち、各ビューはpush/popで組織されています.
一方、最下位層は最もよく知られている最も一般的なアプリケーションフロー構成方式であり、TabViewによってSwitUIで実現される.
NavigationViewとTabViewでアプリケーションフレームワークを構築する過程で、NavigationLinkで次の画面に入ると、次の欄は消えずに残り続ける現象が発見されました.
💻 ソリューション
想像以上に時間がかかりましたが、Hierarchyを知ってからは思ったより解決が簡単でした.
元のコードはこのように書かれています.
struct ContentView: View {
var body: some View {
TabView(selection: $tabSelection) {
NavigationView {
NavigationLink(destination: NavigatedView()) {
VStack {
Text("Navigate")
}
.navigationBarTitle("Tab1")
}
} // NavigationView
.tabItem { Text("Tab 1") }
.tag(Tabs.tab1)
.
.
.
} // TabView
} // View
現在の階層構造はこうである.しかし、私(実際、デザイナー)が望んでいる構造は以下の通りです.
実際、市場に出回っている多くのアプリケーションがこのソフトウェアを採用しているのは、ユーザーがこのソフトウェアをもっと好きだからかもしれません.
TabView上にNavigationViewが作成され、NavigationView内でNavigationLinkでスキップした画面もTabView上に作成されます.そのため、TabBarを残すしかない.
したがって、コードは次のように変更されます.
struct ContentView: View {
var body: some View {
NavigationView {
TabView(selection: $tabSelection) {
NavigationLink(destination: NavigatedView()) {
VStack {
Text("Navigate")
}
.navigationBarTitle("Tab1")
} // NavigationLink
.tabItem { Text("Tab 1") }
.tag(Tabs.tab1)
.
.
.
} // TabView
} // NavigationView
} // View
画面が移動すると、下部のバーが消えやすいのが見えます.
📌 ポスト
言語の勉強を始めたばかりで、言語の文法や構造がよく分からないので、例題コードを見てから勉強することがよくあります.
今回の故障シュートも、事実上、当たり前だと思っていたら、TabViewとNavigationViewがどのように構築されているのか理解していなければ、このような構造を把握できないだけでなく、NavigationLink内でNavigationViewを宣言し、不要なナビゲーションバーを作成することもできます(恥ずかしいですが、これは私の物語です).
SWIFTUIは思ったより面白かったです
1年半くらい使ったフラッシュと差が少ないせいか.早くこの怠惰を克服してFlutterが感じていることも整理しておきましょう
printf("Thank You!\n");
printf("Posted by Thirsty Developer\n");
Reference
この問題について(SwitUI Truble Shooting 2:ナビゲーション後TabBarが消えない), 我々は、より多くの情報をここで見つけました https://velog.io/@jyw3927/SwiftUI-Trouble-Shooting-2-Navigation-후-TabBar가-사라지지-않는-현상テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol