
הטקסט המלא של הדקות הראשונות בהרצאה «עבודה עם UIAlertController הצגת alert ב-Xcode - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים אנחנו רוצים לדבר בסדרת הסרטונים הבאה על כל מיני הודעות קופצות דיאלוגים ואנימציות לאט לאט נכסה את כל החומר בסרטונים הבאים אז בואו נתחיל אנחנו מייצרים פרויקט חדש להרצאה אז פייל ניו פרוג'קט מסוג סינגל ואפליקיישן ואנחנו נקרא לפרויקט דיאלוגס ובהמשך זה גם יהיה אנימשנס
נעצור פה דיאלוגס ככה נושא מספיק רחב אנחנו כמובן פותחים את זה בתיקייה שלנו של הקורס ובואו נתחיל בצורה הפשוטה ביותר קודם כל כל view controller שלנו אנחנו הרבה פעמים נרצה לעטוף אותו בnavigation אז אני הולך ל-view controller ועוטף אותו בnavigation controller זה תמיד טוב זה תמיד
מאפשר לנו ככה דברים נוספים מעבר לטייטל ולמעבר בין מסכים אז גם מקום נחמד לכפתורים וכך הלאה. לצורך העניין בוא נגיד שאנחנו רוצים להוסיף פה כפתור פלוס ראינו גם איך אפשר להוסיף את זה מהקוד אם אתם מחפשים אתגרים אבל בואו פשוט נוסיף לפה את הכפתור שלנו בצורה הפשוטה ביותר הרי היא בר בטון אייטם נייצר אותו מכאן ובכפתור
שלנו אפשר סתם לתת טייטל או שאפשר לקחת סיסטם אייטם ולהגיד בוא נאמר עד בסדר כדי להציג את ההודעה יפה עכשיו ההודעה שלנו תהיה מאוד מאוד פשוטה אבל בשביל להציג אותה בואו פשוט נמשוך אז אני פותח את האסיסטנט אדיטור וכל מה שאנחנו צריכים לעשות זה למשוך אקשן אנחנו מעדיפים שהטייפ יהיה הפער בטון אייטם
עצמו ולא סתם טייפ של אני ואם ככה בואו נקרא לפעולה show alert אוקיי עכשיו אני אסדר לעצמנו קצת מקום פה ואני אסגור את האסיסטנט אדיטור אנחנו רוצים לממש את הפעולה כדי להציג את האלרט הפשוט ביותר אנחנו אנחנו רוצים ליצור מופע למעשה של alert controller בואו נראה אז let controller שווה
ui alert controller חדש עכשיו כשאנחנו באים לייצר ui alert controller חדש אנחנו נתקלים פה בכל מיני אופציות כמו קודר וניבנעים אבל גם על שני הדברים אנחנו נדבר אני מבטיח על שתי אובייקטיב אבל אנחנו נלך כמובן באופציה הנעימה והנוחה של ה-title וה-message וה-prepared style כי זאת דרך ליצור alerts הוא רוצה לדעת מה הטייטל אז בוא
נאמר שהטייטל יהיה דיאלוקס ולגבי המסג' נגיד משהו כמו I love it אוקיי כדי להציג איזשהו טקסט נעשה command control ורווח וזה פותח לי פה את השרקטרס אם אין לכם מזל מספיק ואתם צריכים לפתוח את זה בלי מקלדת אז יש גם את האפשרות הזאת ואפשר ללכת לאדיט ואמרג'יס אנד סימבולס בסדר אחרת קומנד קונטרול רווח בואו נעשה פה חיפוש של אהבה כי אנחנו מאוד אוהבים את סוויפט
או הארט ובוא נאמר I love dialogues אוקיי עכשיו פעמיים סימן קריאה זה כבר יותר מדי בשבילי אפילו בפרופרד סטייל אנחנו נרצה לבחור בוא נבדוק מה יש לנו שם כן אנחנו נרצה לבחור האמת היא להציג את זה כאלרט אוקיי כי רוצים לאלרט אנחנו נלמד גם על אקשן שיט אז הנה יש לי קונטרולר כדאי לשבור פה את השורה לכמה שיותר חלקים
העיקר שזה לא יתפוס פה את כל העולם והאמת היא שלגבי הסטייל אחרי שהבנו שזה UI alert controller נקודה סטייל נקודה alert בואו נקצר פשוט שיהיה כתוב כאן עליה עכשיו יש לו דבר אחד יש לי קונטרולר ועדיין לא נגעתי בו זה לא כל כך טוב אנחנו צריכים להציג אותו כשוויו קונטרולר אחד שזה הוויו קונטרולר שאני נמצא בו כרגע רוצה להציג ויו קונטרולר אחר
ה-view-controller עושה את זה על ידי הפעולה present view-controller. present מקבל את view-controller שצריך להציג אותו, שזה ה-controller שעכשיו יצא אותי.
ולגבי התשובה, אם אנחנו רוצים את זה באנימציה אז בהחלט. עכשיו, לגבי ה-completion יש לנו פה closure או בלוק.
בעצם הבלוק הזה מייצג פונקציה. תסתכלו, אתם צריכים להסתכל על זה בצורה הבאה. יש לנו פה פעולה שלא מקבלת פרמטרים, כמו פונקציה שבמקום לכתוב את המילה fun פשוט לא כותבים ולא נותנים לה שם אז זו פעולה שלא מקבלת פרמטרים ולא מחזירה ערך הרי void הוא ה-return time
אנחנו רואים שזה אופציונל במילים אחרות אפשר היה ככה למחוק מזה למחוק את זה וזה גם היה מסתדר נפלא אנחנו לא צריכים להפעיל קוד ב-completion בכלל האמת במקרה הזה אז אופציה אחת זה לא להעביר פה כלום אופציה אחרת סתם בשביל שניחשף קצת לקלוז'רים ולעובדה שהם פה זה לעשות פה דאבל
קליק ולראות מה אנחנו צריכים לעשות כאן. בעצם נתנו לי פה בלוק שבבלוק הזה אני כותב קוד שיופעל אחרי שהדיאלוג הוצג. בעצם מה שאני יודע בשלב הזה דיאלוג was בעצם פרזנטד.
יפה. עכשיו אני לא רוצה להפעיל את האפליקציה בשלב הנוכחי מהסיבה הפשוטה האפליקציה אם אני אפעיל אותה לא יהיה לי דרך לשחרר את הדיאלוג אבל בואו נראה את זה ביחד יהיה לו רק טייטל לא יהיה לו כפתור דיסמיסט לא יהיה לו כלום.
זה יהיה טיפונת מעצבן, בואו נבדוק איך זה נראה, לוחץ, דיאלוגס, הופה, דיאלוג was presented זה הקוד שלי של ה-completion handler.
עכשיו, אתם יכולים להבין אותי למה אמרתי שאולי אנחנו לא חייבים completion handler, כי אני לא חייב להדפיס פה משהו, אני יודע שהוא הוצג, רואים את זה נהדר, אין לי איזושהי פעולה נוספת שאני מעוניין לעשות אחרי שהצגתי את הדיאלוג.
אוקיי, אז לרשותכם עומד ה-completion block, במידה ואתם מעוניינים להגיב לדבר הזה. הבעיה פה מתחילה בזה שאין לי כפתור ולמעשה הדיאלוג שלנו לא ניתן לשחרור אפילו שהוא מאוד יפה, אתם יכולים להודות.
כדי לאפשר לעצמנו לשחרר את הדיאלוג אנחנו בעצם רוצים להוסיף לדיאלוג שלנו כפתור. לדיאלוג היא מסתבר לקונטרולר הזה שיצרנו הלרט קונטרולר שיצרנו מסתבר שאפשר להוסיף לו אקשנים יש לו מערך של אקשנים ואקשנים זה בעצם אובייקטים שמנציגים פעולות והפעולה שאנחנו רוצים
לייצג זה כמו כפתור שכזה אוקיי אז אנחנו רוצים להוסיף לו אקשן זה יתווסף לו באמת למערך של האקשנים השאלה מה אנחנו נותנים פה כפרמטר ואני רואה שהוא רוצה ui alert action אם כן אנחנו נייצר ui alert action חדש ושוב פעם בפרמטרים אנחנו רואים שיש טייטל אבל הפעם הטייטל הזה הוא לכפתור
אז בטייטל אני אלחץ נניח מס או שור בטח כן מה שאתם רוצים תכתבו פה בקיצור ולגבי הסטייל של הדבר הזה אז אנחנו ככה נלך פה על סטייל נניח חיובי בסדר אז בוא נגיד שאנחנו רוצים דיפולט כן יש לנו קאנסל דיפולט ודסטרקטיב אוקיי אז בוא נגיד שאנחנו רוצים את הסטייל הדיפולטי מה לגבי ושוב פעם תופס הרבה מקום אני אקצר קצת מותר לי עבור אינם לבחור וישר את הבחירה ובלי
לרשום את כל הדבר הארוך. מה לגבי ההנדלר? ההנדלר אומר לי לחצו על אישור, כן? זה און קליק בעצם כמו דיד טאפ על הכפתור.
אז שוב פעם יש לנו פה קלוז'ר, הפעם זה בלוק שמקבל את האקשן שנכנס ולא מחזיר ערך. אוקיי, מה זאת אומרת? בואו נעשה דאבל קליק, יפה, האקשן זה הפרמטר שנכנס, אני יכול לקרוא לו אקשן או איך שאתם רוצים, תקראו לו x, נכנס, קוד שמגיב, יפה.
עכשיו עוד הפעם בואו נסתכל רגע על ה-closure הזה כדי שנהיה ככה סגורים עליו היטב, לא רוצה להפציץ אתכם עם דברים לא מובנים אז אני אעשה את זה כאן כפרמטר נפרד, אני אגיד ש-let h שווה לבלוק חדש, הבלוק הוא בעצם קטע קוד שמקבל כפרמטר איזשהו