النوافذ المنبثقة والتنبيهات
جزء من قسم مقدمة إلى SwiftUI في رحلة Swift على Coddy. الدرس 37 من 50.
تُحرّك الورقة عرضًا إلى أعلى فوق الشاشة الحالية. وتظهر عندما تكون حالة Bool صحيحة:
@State private var showHelp = false
Button("Help") { showHelp = true }
.sheet(isPresented: $showHelp) {
Text("Swipe down to close")
}يطرح التنبيه سؤالًا قصيرًا. ويعمل بالطريقة نفسها، مع عنوان وأزرار ورسالة اختيارية:
Button("Delete") { askDelete = true }
.alert("Delete photo?", isPresented: $askDelete) {
Button("Delete", role: .destructive) { deletePhoto() }
Button("Cancel", role: .cancel) { }
} message: {
Text("This cannot be undone.")
}يؤدي النقر على أي من أزرار التنبيه إلى تشغيل الإجراء الخاص به وإغلاق التنبيه، مع إعادة تعيين الحالة إلى false. داخل ورقة، يوفر @Environment(\.dismiss) var dismiss إجراء dismiss() يُغلقها من التعليمات البرمجية.
التحدي
متوسطعندما ينقر المستخدم على Save، اعرض تنبيهًا بعنوان Saved! مع الرسالة Your note is stored. وزر OK واحد. استخدم الحالة showSaved.
جرّب بنفسك
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس مقدمة إلى SwiftUI
تدرّب بنفسك: Playground لـ Swift