İçeriğe geç

SwiftUI ile @ObservedObject kullanımı

Merhabalar bu yazımda SwiftUI ile birlikte kullandığımız @ObservedObject ön eki alan değişkenlerin ne işe yaradığını ve ne için kullanmamız gerektiğini sizlerle paylaşacağım.

@ObservedObject ile Sayfanız içerisinde yapacağınız değişimleri otomatik olarak tetikleyerek, diğer sayfalara taşıyabilir ve taşınan sayfada yapılan değişiklikler bir önceki sayfa üzerindede update edilmiş olur. SwiftUI ile Uygulama içerisinde çokça kullancağımız bir yapıdır.

Apple tarafından UIKit ile MVC tasarım deseni yönlenimi varken SwiftUI ile MVVM tasarım desenine yönelim yapılmıştır. Bahsettiğim bu yapıda View Model kısmı sınıflarınızı ObservableObject olarak tanımlayıp içerisinde gerekli değişken ve model ile bağlantılarınızı gerçekleştirebilir ve bunları otomatik olarak UI update edilerek kullanabilirsiniz.

Aşağıda ilk örneğimi sizlerle paylaşayım.

Burada VM sınıfımız içerisinde kullandığımız yapı ile otomatik olarak isActive değişkeninin değişimi ile update işlemi gerçekleşmiş olur. Yani farklı sayfalarda bile isActive üzerinde yaptığınız değişiklik, diğer sayfalardada otomatik olarak değişir ve UI update edilir. PassthroughSubject sınıfı ve kullanımını daha önceki Combine framework yazımda bahsetmiştim.

Bunun dışında basit bir model kullanarak kullanıcı ismini diğer bir sayfaya taşıyıp, orada update etme örneğimi sizlerle paylaşayım.

Basit bir model oluşturalım.

Bu modelimizi kullanacağımız bir ObservableObject sınıfı oluşturalım.

Daha sonrasında bu modeli ilk sayfamıza bağlayarak verileri listeleyelim.

Daha önceki yazılarımda bahsettiğim NavigationLink ile diğer bir sayfaya push olup, Binding<UserModel> tipindeki nesnemizi taşıyalım.

Bu sayfada $user.name üzerinde yaptığımız değişiklikler direkt olarak ilk sayfayada yansımış olur.

Tarih:SwiftUI

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

© 2019 Kenan Atmaca