Swift & SwiftUI
  • İçerikler
  • UI Bileşenleri
    • Text
    • Button
    • Image
    • Picker
    • SecureField
    • Stepper
    • Slider
    • TabView
    • Sheet
    • Action Sheet
    • Alert
  • Layout
    • Fill-Space-Equally
  • State & Data Flow
    • Content
    • EnvironmentObject
    • ObservableObject
    • ObservedObject
    • Binding
  • Gestures
    • TapGesture
    • DragGesture
    • MagnificationGesture
    • RotationGesture
    • LongPressGesture
    • Notes
  • Extra
    • GeometryReader
    • Timer
    • AlignmentGuide
    • PreferenceKey
  • Concurrency
    • Perform asynchronous operation
Powered by GitBook
On this page

Was this helpful?

  1. UI Bileşenleri

TabView

Birden çok view arasında geçiş yapabilmemizi sağlayan bileşendir.

// Tab geçişlerinin gerçekleştiğini gözlemlemek için
// bir dummy view oluşturalım.
struct SampleTabView: View {
    
    let title: String
    
    var body: some View {
        Text(title)
    }
    
}

struct TabContainerView: View {
    var body: some View {
        TabView {
        
            SampleTabView(title: "Tab - 1")
                .tabItem {
                    Image(systemName: "1.circle.fill")
                    Text("Tab-1").bold()
                }
            
            SampleTabView(title: "Tab - 2")
                .tabItem {
                    Image(systemName: "2.circle.fill")
                    Text("Tab-2").bold()
                }
            
            SampleTabView(title: "Tab - 3")
                .tabItem {
                    Image(systemName: "3.circle.fill")
                    Text("Tab-3").bold()
                }
        }
    }
}

tabItem düzenleyicisini kullandığımızda Image ve Text bileşenlerini bizim için otomatik olarak yerleştirir.

Ekstra

Sekmeler (Tab (View)) arasında @EnvironmentObject kullanarak veri paylaşımı yapabiliriz.

// Demo için bir dummy class oluşturalım.
class User: Identifiable, Codable {
    var id = UUID()
    var name = ""
}

// EnvironmentObject
class UserService: ObservableObject {
    @Published var users: [User]

    init () {
        self.users = []
    }
}

struct TabContainerView: View {
    var userService = UserService()
    
    var body some: View {
        SampleTabView { .. }
            .environmentObject(userService)
            // Paylaşmak istediğimiz veriyi
            // Bu senaryoda UserService, bu şekilde environmentObject'e
            // argüman olarak geçiyoruz.
    }
}

// Tab View
struct SampleTabView: View {
    @EnvironmentObject var userService: UserService
    // Tab View içinde de bu şekilde, referans olarak geçtiğimiz
    // UserService'e tekrar erişebiliriz.
    
    var body: some View { .. }
}

@EnvironmentObject kullandığımız zaman SwiftUI, View oluşturulduğunda bu o objenin de hazır olduğuna emin oluyor

PreviousSliderNextSheet

Last updated 5 years ago

Was this helpful?