كيفية عمل تنبية للمستخدم باكثر من طريقة Alert

كيفية عمل تنبية او تحذير للمستخدم باكثر من طريقة Alert

mohmmed saplelمنذ 3 سنوات

السلام عليكم ورحمة الله وبركاته  

اخواني بشرح طريقة عمل تنبيه للمستخدم عند عمل اكشن معين او تحذير مستخدم وكيف نستخدمها داخل مشروعنا بسهولة من خلال بعض الاسطر البرمجية 

الطريقة تنفع في كثير حالات مثل : 

- حذف شيء معين 

- طلب تقييم او مشاركة 

- تحديث بيانات  

- اظهار عدة خيارات للمستخدم 

- الانتقال الي صفحة معينه 

-اظهار الأخطاء في كتابة بيانات 

- اظهار رسالة تنبيه للمستخدم ان كلمة المرور والبريد  خطا 

- عمل اكشين معين  وغيرها من خصائص مفيدة للمستخدم وتسهل عمل المبرمج 

الطريقة يتم توضيحها داخل 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)
    }

بعض المصادر

تحياتي : محمد صالح 

 

 

 

كلمات دليلية: alert ios swift تنبية
1
إعجاب
1028
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !