✔️
[SwiftUI] [iOS18+] navigationTransitionを使ってみた
iOS18から使えるnavigationTransitionの挙動を見てみました
navigationTransitionとは、Navigationの画面遷移時のスタイルを指定できるmodifierです
import Foundation
import SwiftUI
struct NavigationTransitionContentView: View {
@Namespace private var namespace
var body: some View {
NavigationStack {
NavigationLink {
if #available(iOS 18.0, *) {
NavigationTransitionDetailView()
.navigationTransition(.zoom(sourceID: "hoge", in: namespace))
} else {
NavigationTransitionDetailView()
}
} label: {
if #available(iOS 18.0, *) {
Text("Hello")
.matchedTransitionSource(id: "hoge", in: namespace)
} else {
Text("Hello")
}
}
}
}
}
struct NavigationTransitionDetailView: View {
var body: some View {
Text("Hello")
}
}
#Preview {
NavigationTransitionContentView()
}
簡単に遷移アニメーションを設定できて便利ですが、NavigationBarの表示が違和感あるので非表示で使ったほうが良さそうです
現状.zoomしかスタイルがありませんが今後バリエーションが増えることを期待してます👍
Discussion