كيفية عمل تنبية للمستخدم باكثر من طريقة Alert
كيفية عمل تنبية او تحذير للمستخدم باكثر من طريقة Alert
السلام عليكم ورحمة الله وبركاته
اخواني بشرح طريقة عمل تنبيه للمستخدم عند عمل اكشن معين او تحذير مستخدم وكيف نستخدمها داخل مشروعنا بسهولة من خلال بعض الاسطر البرمجية
الطريقة تنفع في كثير حالات مثل :
- حذف شيء معين
- طلب تقييم او مشاركة
- تحديث بيانات
- اظهار عدة خيارات للمستخدم
- الانتقال الي صفحة معينه
-اظهار الأخطاء في كتابة بيانات
- اظهار رسالة تنبيه للمستخدم ان كلمة المرور والبريد خطا
- عمل اكشين معين وغيرها من خصائص مفيدة للمستخدم وتسهل عمل المبرمج
الطريقة يتم توضيحها داخل Boutton بالإمكان استخدمها بغير Boutton حسب الحاجة و بالإمكان كتابتها مرة واحدة داخل ملف swift استخدمها بكل مرة بحاجة لها بدون كتابة تفاصيلها وتعديل عليها
اولاً نفتح Xcode
* ننشاء مشروع جديد
* نضيف ثلاث Boutton الي Main.storyboard مثل الصورة مرفقة
بعد اضافة عناصر الي .Main.storyboard نضيف ملف swift. فارغ
نعطية اسم extension+view
بعد تغير مكتبة الي UIKit ونلصق كود في البداية داخل ملف extension+view
extension UIViewController {
}
الطريقة الاولي مناسبة لستخدمها بكثرة داخل المشروع وتتطلب كل مرة تعطيها عنوان و نص الرسالة بدون اكشن للمستخدم نلصق الكود داخل ملف extension+view
func showAlertOen(title: String , message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
let action = UIAlertAction(title: "تم", style: .cancel, handler: nil)
alert.addAction(action)
DispatchQueue.main.async {
self.present(alert, animated: true, completion: nil)
}
}
نذهب الي ملف ViewController وداخل Boutton :
بالامكان اضافة اكشن من خلال (title: String , message: String) حسب الرغبة
مثل
(title: String , message: String , handler: ((UIAction) ->Void?))
//وستبال nil ب handler
// وعمل اكشن حسب الرغبة
النتيجة.:)
الطريقة الثانية
نلصق الكود التالي داخل ملف extension+view
func showalert() {
let alert = UIAlertController(title: "العنوان" , message: "هنا الرسالة", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: " تم", style: .cancel, handler: { (acion) in
print("Cancel")
}))
present(alert, animated: true, completion: nil)
}
ويتم استعادي داخل Boutton :
نفس الطريقة الاولي فقط لا يمكن تعديلة الا من خلال ملف extension+view
النتيجة
الطريقة الثالثة مشابهه للثانية لكن تصميم مختلف نلصق الكود داخل ملف extension+view
func showActionsheet() {
let actionSheet = UIAlertController(title: "العنوان" , message: "هنا الرسالة", preferredStyle: .actionSheet)
actionSheet.addAction(UIAlertAction(title: " تم", style: .cancel, handler: { (acion) in
print("Cancel")
}))
present(actionSheet, animated: true, completion: nil)
}
نلاحظ ان preferredStyle: .actionSheet مختلف عن الثاني النمط مختلف
نلصق الكود مثل المثال الثاني ونتيجة :)
في الاخير اتمني وصلت فكرة بسهولة في حالة كان هنا خطا اتمني تنبيه في تعليقات -> بالإمكان استفادة من طريقة التي تسهل العمل داخل مشروعك بدون حاجة لكتابتها كل مرة احتاجها
فيما يخص الاكشن والامر يعود للمبرمج نفسة وما الذي يحتاجه مثل عند ضغط على حذف ما مطلوب عند ضغط علي حذف والـي ينفذه او على الغاء الامر ما الأكشن مطلوب. وما الذي ينفذه الكود هنا وغيرها يعتمد على طريقة مبرمج وحاجته لها والاشياء التي يحتاجها ينفذها .
ملاحظات مهمة
عادة ما يكون باللون الأحمر ، مما يشير إلى مستخدمي تطبيقك أن هذا إجراء خطير أو إجراء لا يمكن التراجع عنه.
ملاحظة: حتى إذا قمت بتغيير ترتيب إضافة الإجراءات إلى التنبيه ، فسيظهر زر "إلغاء الأمر" دائمًا أولاً.
عند اضافة اكشن يجب عليك أولاً إضافته باستخدام الوظيفة addAction (_ :) قبل تعيينه لخاصية الخاصية المفضلة لـ UIAlertController.
هنا بعض الاكواد يمكن الاستفادة منها مثل الصق كود التالي ويتم ذلك داخل boutton :
func showActionsheet() {
let actionSheet = UIAlertController(title: "العنوان" , message: "هنا الرسالة", preferredStyle: .actionSheet)
actionSheet.addAction(UIAlertAction(title: " تم", style: .cancel, handler: { (acion) in
print("Cancel")
}))
actionSheet.addAction(UIAlertAction(title: " حدف", style: .destructive, handler: { (acion) in
print("Cancel")
}))
actionSheet.addAction(UIAlertAction(title: " تحرير", style: .default, handler: { (acion) in
print("Cancel")
}))
actionSheet.addAction(UIAlertAction(title: " الغاء الآمر", style: .default, handler: { (acion) in
print("Cancel")
}))
present(actionSheet, animated: true, completion: nil)
}
طريقة اخر عنصرين فقط :
func showalert() {
let alert = UIAlertController(title: "انتبة .!!" , message: "هل أنت متأكد من حذف العنصر", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: " حذف", style: .cancel, handler: { (acion) in
print("Cancel")
}))
alert.addAction(UIAlertAction(title: " الغاء الآمر", style: .destructive, handler: { (acion) in
print("Cancel")
}))
present(alert, animated: true, completion: nil)
}
بعض المصادر
تحياتي : محمد صالح
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !