【Swift UI】非推奨となったNavigationLink(isActive)の対処法
この記事からわかること
- Swift UIでNavigationLink(isActive)が非推奨になった対処方法
- navigationDestinationの使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
NavigationLink(isActive)
公式リファレンス:init(_:destination:isActive:)
画面遷移のタイミングを変数の値が変化した時に実行できるNavigationLink(isActive)
が非推奨になっていました。
struct TestNavigationView: View {
@State var isActive:Bool = false
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: MyNextView(),
isActive: $isActive,
label: { EmptyView() })
Button {
isActive = true
} label: {
Text("Navigate Button")
}
}
.navigationTitle("Navigation")
}
}
}
struct MyNextView: View {
var body: some View {
Text("MyNextView")
}
}
対処法
そもそもNavigationView
自体も非推奨に変わっているのでNavigationStack
への置き換えとnavigationDestination
で対処できます。
struct TestNavigationView: View {
@State var isPresented:Bool = false
var body: some View {
NavigationStack {
VStack {
Button {
isPresented = true
} label: {
Text("Navigate Button")
}
}
.navigationTitle("Navigation")
.navigationDestination(isPresented: $isPresented) {
MyNextView()
}
}
}
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。