Ortam Nesneleri
Coddy'nin Swift Journey'sinin SwiftUI'ye Giriş bölümünün bir parçası. Ders 41 / 50.
Bir nesneyi ona ihtiyaç duyan görünüme ulaşana kadar her görünümden geçirmek zahmetli hâle gelir. Bunun yerine nesneyi ortama yerleştirin; böylece altındaki herhangi bir görünüm onu okuyabilir:
@StateObject private var cart = Cart()
var body: some View {
NavigationStack {
ShopView()
}
.environmentObject(cart)
}Daha aşağıdaki bir görünüm, başlangıç değeri olmadan neye ihtiyaç duyduğunu @EnvironmentObject ile bildirir:
struct CartBadge: View {
@EnvironmentObject var cart: Cart
var body: some View {
Text("\(cart.count) in cart")
}
}ShopView sepete hiçbir zaman değinmez, ancak içindeki CartBadge yine de aynı nesneyi alır. Yukarıdaki görünümlerden hiçbiri ona .environmentObject sağlamazsa, CartBadge gösterildiğinde uygulama bir hatayla durur.
Görev
OrtaCartBadge paylaşılan sepetin sayısını göstermelidir. cart değerini .environmentObject ile VStack'e sağlayın ve CartBadge'i @EnvironmentObject ile okuyacak şekilde değiştirin. Rozet, bir dokunuştan sonra 1 in cart değerini okumalıdır.
Kendin dene
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
SwiftUI'ye Giriş bölümündeki tüm dersler
2İçerik Gösterme
Metin GörünümleriMetin İçinde SayılarYazı TipleriRenklerSF SymbolsTekrar - Fiyat EtiketiKendi başına pratik yap: Swift playground