Junior — Middle
Ko'p navigatsiyaga ega ilovada ko'p o'tishlarni boshqarish uchun bitta NavigationLink komponentidan foydalanish mumkinmi?
sobes.tech AI
AIdan javob
SwiftUIда NavigationLink компоненти муайян бир кўрсатишга ўтиш учун мўлжалланган. Бир нечта ўтишларни бошқариш учун бир NavigationLinkдан фойдаланиш тавсия этилмайди, чунки ҳар бир NavigationLink аниқ бир мақсадга (ўтиш мақсади) боғланган. Кўп навигацияга эга илова учун ҳар бир ўтиш учун алоҳида NavigationLink яратиш ёки NavigationDestination ва NavigationStack yordamida дастурий навигациядан фойдаланиш яхшироқ, бу ҳолда навигация ҳолат (масалан, турли экранлар билан enum) орқали бошқарилади. Бу тозалик ва бошқарувни осонлаштиради.
Дастурий навигация билан NavigationStackдан фойдаланиш намунаси:
enum Screen {
case home
case details
case settings
}
struct ContentView: View {
@State private var path = NavigationPath()
var body: some View {
NavigationStack(path: $path) {
VStack {
Button("Тафсилотларга ўтиш") {
path.append(Screen.details)
}
Button("Настройкалар") {
path.append(Screen.settings)
}
}
.navigationDestination(for: Screen.self) { screen in
switch screen {
case .home:
Text("Асосий экран")
case .details:
Text("Тафсилотлар экрани")
case .settings:
Text("Настройкалар экрани")
}
}
}
}
}