
הטקסט המלא של הדקות הראשונות בהרצאה «UINaviagationControllers - UINavigationItems Titles, Bar Button Items» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים בשיעור הקודם דיברנו על מספר מסכים ב-iOS על ידי שימוש בסגוויים פשוטים היום אנחנו רוצים קצת להרחיב את העניין ולדבר על מספר מסכים אמנם אבל תוך שימוש ב-UI Navigation Controller שזה הנושא של השיעור היום בואו נראה מה זה UI Navigation Controller לצורך העניין אנחנו
רוצים לייצר לעצמנו פרויקט חדש ב-Xcode אז תייצרו לעצמכם פייל ניו פרויקט בסדר והפרויקט יהיה מסוג סינגל וי אפליקיישן ואנחנו נקרא לפרויקט שלנו Navigation Controllers זה יהיה שם הפרויקט, שפת הפיתוח Swift וכן הלאה. כמובן שברגע שאנחנו פותחים פרויקט פחות מעניין אותנו הסיכום כאן ואנחנו רוצים ללכת
ל-Storyboard וכרגיל ב-Storyboard יש לי View Controller אחד כי זה מה שמתחילים את האפליקציה ב-Single View Application. עכשיו מה שאנחנו רוצים לעשות אנחנו רוצים לעטוף את ה-View קונטרולר הזה במשהו שנקרא Navigation Controller ויפה מראה עיניים אז בואו נבדוק מה זה Navigation Controller אני עומד פה על הצהוב על ה-View Controller שלי שזה הצהוב
פה ואני הולך לאדיטור ואומר שאני רוצה לעטוף את ה-View Controller הזה ב-Navigation Controller יפה בוא נבדוק אז Editor Embed in Navigation Controller אתם רואים שזה הוסיף לי פה איזשהו תוספת אני מזיז את הדברים שיהיו אחד ליד השני אני אצמצם את זה מעט כדי שתוכלו לראות טוב יותר אוקיי רגע דווקא אמר לי שזה יישאר פתוח
יפה אז מה אני רואה שאולי נוסף פה איזשהו אזור מסוים עכשיו האזור המסוים הזה נקרא navigation item אם אני אלך לתכונות של ה-navigation item אני רואה שיש לי פה טייטל ובטייטל אני יכול לשים משהו איזושהי כותרת נחמדה נגיד pizza type אוקיי ואז אני רואה פה את התוספת של ה-navigation קונטרולר שהוא בעצם מוסיף לי Navigation Item שזה הדבר הזה.
ה-Navigation Item נראה מעניין, יש לו פה איזשהו כפתור Back. בואו נריץ את האפליקציה, קיבלנו איזשהו שוני מזערי בנראות, אבל השוני המזערי הזה בעצם מזכיר לנו הרבה אפליקציות אחרות ב-iOS, אז ככה כדאי שאנחנו תמיד נעטוף את ה-View Controllers שלנו ב-Navigation Controller או לרוב,
כלומר ככה. בואו נראה, יפה, אתם רואים זה לוק אנד פיל אחיד כמו שאנחנו רגילים לראות מהרבה אפליקציות טובות ואחרות. בואו נתקדם טיפונית ונראה מה עוד נותן לנו ה-Navigation Controller.
כדי ליהנות מה-Navigation Controller בכל הודו, זה יותר מיועד לניווט באפליקציה. Navigation הוא ניווט, אז כדי לראות באמת את היופי, בואו נייצר לעצמנו עוד כובד Swift מסוג ViewController כמו שעשינו בשיעור שעבר.
אז אני מייצר CocoTouch Class, ואני רוצה שהדבר הזה יירש מ-UI ViewController, בואו נקרא לזה תוספות לפיצה טופינגס view controller נניח שבמסך הראשון אנחנו בוחרים את סוג הפיצה במסך השני אנחנו כבר רוצים לבחור תוספות לפיצה שמתם לב דרך אגב שזה סאבקלאס של ui view controller כי אני רוצה לרשת מ ui view controller מצוין אז יצרתי קובץ
swift נוסף יש לי את ה view controller אני יכול להרים אותו פה למעלה אז יש לי view controller ראשון view controller שני יפה מצוין במסך הראשי שלי עכשיו אני יכול להוסיף את המסך שרציתי זה פיצה טייפ, מה יהיה פה?
אמרנו תוספות לפיצה, טופינגס, יפה. אז בואו נלך ל-object explorer ונחפש לעצמנו view controller, שנוכל לקשור אותו לקלאס שיצרנו עכשיו בסוויפט, זה המסך השני.
איך אני מקשר אותו לקלאס שיצרתי? הרי יצרתי פה קלאס טופינגס view controller. אז אנחנו הולכים ל-view controller, הולכים ל-identity inspector, יפה, ובקלאס אנחנו רוצים לשנות את הקלאס לקלאס שיצרנו, נכון?
טופינגס ויו קונטרולר עכשיו הדבר הזה מחובר לקובץ סוויפט מצוין איך אנחנו עכשיו רוצים לעבור מפיצה טייפ לטופינגס בוא נראה מה אנחנו צריכים לעשות אנחנו יכולים להוסיף בשיעור שעבר הוספנו כפתור אני אזכיר לכם בוא נראה הוספנו סתם כפתור ודרך הכפתור הזה ראינו שאפשר לעשות סגווי
יפה עכשיו היום אנחנו יכולים לראות שקיבלנו בזכות הנאביגיישן קונטרולר גם בק בטון בחינם זה מצוין. עכשיו בנאביגיישן קונטרולר לא רק שהוא מאפשר לנו את הבק בטון בחינם בוא נריץ את זה נוכל להתרשם טוב יותר מה זה עושה אני פשוט לוחץ על הכפתור הלא יפה שיצרתי ואני רואה כבר ככה ניווט מאוד נחמד מאוד איכותי
בילט אין באי.או.אס שנראה טוב פשוט נראה יותר טוב ממה שעשינו בשיעור הקודם עם כל האנימציות האלה והפיצ'רים שזה נהדר. עוד דבר אחד שאני רוצה להגיד לכם בוא נמחק פה רגע את הכפתור שוב פעם מזכיר לגבי הכפתור עשינו את זה בשיעור שעבר אבל אם פספסתם אותי כי הייתי מהיר מדי אז פשוט אספתי כפתור גררתי סגוויי הסגוויי היה שואו בסדר זה הכל מעולה ויש לי פה את הסגוויי
יכול לתת לו אידנטיפייר כמו שעשינו בשיעור הקודם אם אתם לא זוכרים תסתכלו פה אפשר לתת לו אידי ככה להתכונן לסגוויי וכך הלאה היום אנחנו נעשה את זה טיפונת יותר מתוחכם אני רוצה למשל כדי לנווט גם אפשרות לעשות כפתור זה גם נהדר ואנחנו גם נעשה את זה אבל רציתי להראות לכם עוד טיפ נחמד
הטיפ השני שיש לי להראות לכם זה שאפשר להוסיף לא כפתור רגיל אלא ברבטון אייטם עכשיו אתם שואלים את עצמכם מה זה ברבטון אייטם אז התשובה היא שהוא כפתור בתוך נוויגיישן אייטם בוא נגרור אחד ואז אתם תוכלו לראות זה לא כפתור רגיל כפתור רגיל לא היה עובד לי פה לא הייתי יכול לגרור אותו
לדבר הזה קוראים בר בטון אייטם, יפה. עכשיו, באייטם כמובן אתם יכולים ככה לקסטם אותו מעט, לתת לו טייטל אחר, טופינגס, כן? או אתם יכולים לבחור פה איזושהי תמונה נחמדה כדי ככה להציג איזשהו אייקון יותר יפה, יותר ויזואלי, ואפשר ככה קצת לקסטם פה את הצבעים וכן הלאה.
בואו נאמר שזה הכפתור שלי, בסדר? עכשיו, מה אני צריך לעשות כדי לעבור למסך הקודם? זוכרים בוא נבדוק אנחנו פשוט גוררים קונטרול ודראג או קליק ימני ודראג מה שלא אוהבים ולעשות שיעור יפה אז אני חושב שהניווט באפליקציה היום בשיעור הזה נראה יותר טוב מאשר בשיעור הקודם מה דעתכם בוא נראה אז יפה מאוד אני מריץ הכל אמור לעבוד לי נהדר
בר בטון אייטם ועטפנו את ה-view קונטרולר שלנו ב-navigation controller שמעכשיו באמת נשתדל לעשות ככה כל הזמן כי זה פשוט פיצ'ר טוב ויפה לוחץ עובר לי חוזר פנטסטי לא יכול לבקש הרבה יותר מזה אוקיי מה עוד מה עוד יש לי פה להגיד יש לי פה להגיד הרבה דברים האמת הייתי רוצה ככה
לספר לכם המון דברים על הנושא ולאט לאט זה מה שאני אעשה כרגע אנחנו נתחיל במה קורה כשיש לי navigation לעוד מסך שלישי שזה נפוץ לחלוטין הרבה פעמים יש לכם שלוש מסכים כרגע יש לי רק שתי מסכים הפיצה טיים והטופינגס נכון?
עכשיו מה קורה כשאני רוצה עוד מסך יאללה אז בואו ננסה להוסיף אחד אנחנו פשוט מוסיפים עוד view controller בואו נראה הנה view controller נהדר עכשיו בואו ניצור ל-view controller הזה swift file כי אתם יודעים כל view controller צריך להיות משוייך לקובץ swift אז אני יוצר לעצמי פה עוד
מסך נגיד שזה ה-checkout התשלום אז אני מייצר new file קוקו טאץ' קלאס וזה צריך להיות סאב קלאס של ui view controller בואו נקרא לו check out view controller אז יש לי שלושה מסכים אבל עדיין לא עד הסוף כי בעצם יצרתי פה את הקלאס אז הנה הקלאס השלישי עכשיו מה שאני באמת צריך שלוש view controllers מה שאני באמת צריך
לעשות זה לחבר פה את הקלאס נכון אז קראנו לזה check out אז הנה עכשיו זה מחובר נהדר מה אתם אומרים איך עכשיו אני מקשר אליו נגיד כשאני רוצה ללכת באותה דרך שעשינו קודם אז איך אני מקשר?
קודם גררנו בר באתון אייטם ושמנו אותו פה. רואים? אני מנסה לשים פה וזה לא הולך. זה קופץ לי לאיזשהו מקום מוזר שגם לא עובד. זה לא מה שרציתי זה קופץ לי לאיזשהו דבר שנקרא Toolbar ועל זה עדיין לא דיברנו בכלל.
אז זה לא מתאים זה לא עובד מה הבעיה למה זה לא עובד יש לי שלושה מסכים בוא ננסה להשוות ביניהם. המסך הראשון שאותו עטפנו במקור עם ה-Navigation Controller, אני רואה שיש לי פה Navigation Item.
עכשיו, אם אני חוקר פה את השני שלי, כן, אין לי Navigation Item, ואז אני לא ממש יכול לבוא לפה ולהוסיף את ה-Title כמו שרציתי, וגם, נו, חסר לי פה דברים, נכון?
שימו לב, זה ה-Navigation Item. בתוך ה-Navigation Item נכנס לנו הכפתור וה-Title, בסדר?
זה ככה, זה הכפתור, טופינגס. אוקיי, הוא נמצא פה בתוך ה-Navigation Item. זה המסך הראשון שאותו עטפנו בעזרת ה-Editor Embedding. עכשיו, במסכים האחרים לא היה לנו כזה מזל ו-iOS לא הוסיפה עבורנו אוטומטית Navigation Item.
אם אנחנו רוצים פה Navigation Item, עלינו להוסיפו בעצמנו. כלומר, נלך ידנית ל-Object Explorer, עכשיו אנחנו רוצים להתעמק קצת יותר בנביגיישן