ตอนที่ 4 สร้างแอพ iOS: การนำทาง (Navigation) และการกำหนดเส้นทาง (Routing)

  1. ตัวควบคุมการนำทาง (Navigation Controllers)
  2. Segues
  3. ตัวควบคุมแถบแท็บ (Tab Bar Controllers)
  4. ตัวควบคุมมุมมองแยก (Split View Controllers)
  5. ช่วงการเปลี่ยนภาพ (Transitions) และภาพเคลื่อนไหว (Animations) ที่กำหนดเอง
  6. รวมเทคนิคการนำทาง (Combining Navigation Techniques)
  7. การจัดการ Universal Links และ Deep Links

การนำทางที่ราบรื่น (Seamless Navigation) เป็นองค์ประกอบสำคัญของประสบการณ์ผู้ใช้ที่ยอดเยี่ยมในการทำแอพสร้างแอพ iOS ใดๆ โครงสร้างการนำทางที่ออกแบบมาอย่างดีช่วยให้ผู้ใช้เข้าถึงส่วนต่างๆ ของแอพได้อย่างรวดเร็วและเป็นธรรมชาติ ในบทความนี้ เราจะสำรวจเทคนิคการนำทางและการกำหนดเส้นทางต่างๆ ในการทำแอพสร้างแอพ iOS ซึ่งครอบคลุมตัวควบคุมการนำทาง segues ตัวควบคุมแถบแท็บ ตัวควบคุมมุมมองแยก และการเปลี่ยนแบบกำหนดเอง

UINavigationController จัดการกองควบคุมมุมมอง ทำให้ผู้ใช้สามารถนำทางผ่านเนื้อหาแบบลำดับชั้นได้ ตัวควบคุมการนำทางแสดงแถบการนำทางที่ด้านบน แสดงบริบทและอนุญาตให้ผู้ใช้ย้อนกลับไปยังหน้าจอก่อนหน้า

เมื่อต้องการใช้ตัวควบคุมการนำทาง ให้ทำตามขั้นตอนเหล่านี้:

  • ใน Interface Builder ให้ฝังตัวควบคุมมุมมองเริ่มต้นของคุณใน UINavigationController
  • สร้างตัวควบคุมมุมมองใหม่สำหรับลำดับชั้นของแอปแต่ละระดับ
  • เพิ่มส่วน “Show” หรือ “Show Detail” ระหว่างตัวควบคุมมุมมองเพื่อพุชและป๊อปตัวควบคุมมุมมองบนกองการนำทาง

2. Segues

Segues กำหนดการเปลี่ยนแปลงระหว่างตัวควบคุมมุมมองสองตัว สามารถสร้างได้ใน Interface Builder โดยควบคุมการลากจากวัตถุต้นทาง (เช่น ปุ่ม) ไปยังตัวควบคุมมุมมองปลายทาง

segues ทั่วไปมีสี่ประเภท:

  • Show: ดันตัวควบคุมมุมมองใหม่ไปยังกองการนำทาง
  • Show Detail: แทนที่ตัวควบคุมมุมมองรายละเอียดในตัวควบคุมมุมมองแยก
  • Present Modally: นำเสนอตัวควบคุมมุมมองแบบโมดูลาร์ ครอบคลุมหน้าจอก่อนหน้า
  • Popover Presentation: นำเสนอตัวควบคุมมุมมองในป๊อปโอเวอร์บน iPad

ในการส่งผ่านข้อมูลระหว่างตัวควบคุมมุมมอง ให้แทนที่เมธอด “prepare(for:sender:)” ในตัวควบคุมมุมมองต้นทางและตั้งค่าคุณสมบัติบนตัวควบคุมมุมมองปลายทางโดยใช้คุณสมบัติ destinationViewController ของ segue

3. ตัวควบคุมแถบแท็บ (Tab Bar Controllers)

UITabBarController ใช้เพื่อจัดระเบียบการทำแอพสร้างแอพ iOS ลงในส่วนหรือพื้นที่การทำงานต่างๆ จะแสดงแถบแท็บที่ด้านล่างของหน้าจอพร้อมไอคอนและชื่อที่แสดงถึงแต่ละส่วน ผู้ใช้สามารถสลับระหว่างส่วนต่างๆ ได้อย่างรวดเร็วโดยแตะที่แท็บ

เมื่อต้องการใช้ตัวควบคุมแถบแท็บ ให้ทำตามขั้นตอนเหล่านี้:

  • ใน Interface Builder ให้สร้าง UITabBarController ใหม่
  • เพิ่มตัวควบคุมมุมมองสำหรับแต่ละแท็บในแอปของคุณ
  • ตั้งค่าคุณสมบัติ “tabBarItem” ของตัวควบคุมมุมมองแต่ละตัวด้วยไอคอนและชื่อที่เหมาะสม
  • กำหนดความสัมพันธ์ระหว่างตัวควบคุมแถบแท็บและตัวควบคุมมุมมองแต่ละตัวโดยใช้ส่วน “viewControllers”

4. ตัวควบคุมมุมมองแยก (Split View Controllers)

UISplitViewController เหมาะสำหรับทำแอพสร้างแอพ iOS iPad และอุปกรณ์ขนาดใหญ่ ซึ่งอินเทอร์เฟซรายละเอียดหลักสามารถใช้พื้นที่หน้าจอได้อย่างมีประสิทธิภาพมากขึ้น มันจัดการตัวควบคุมมุมมองย่อยสองตัว: ตัวควบคุมมุมมองหลัก (หรือหลัก) และตัวควบคุมมุมมองรายละเอียด (หรือรอง) โดยทั่วไปตัวควบคุมมุมมองหลักจะแสดงรายการของรายการ ในขณะที่ตัวควบคุมมุมมองรายละเอียดจะแสดงเนื้อหาของรายการที่เลือก

เมื่อต้องการใช้ตัวควบคุมมุมมองแยก ให้ทำตามขั้นตอนเหล่านี้:

  • ใน Interface Builder ให้สร้าง UISplitViewController ใหม่
  • ตั้งค่าคุณสมบัติ “preferredDisplayMode” เพื่อกำหนดลักษณะของมุมมองแยก (เช่น .automatic, .primaryOverlay, .primaryHidden หรือ .allVisible)
  • เพิ่มตัวควบคุมการนำทางสำหรับตัวควบคุมมุมมองหลักและมุมมองรายละเอียดแต่ละตัว
  • กำหนดความสัมพันธ์ระหว่างตัวควบคุมมุมมองแยกและตัวควบคุมมุมมองย่อยโดยใช้ส่วนต่อท้าย “master” และ “detail”

5. ช่วงการเปลี่ยนภาพ (Transitions) และภาพเคลื่อนไหว (Animations) ที่กำหนดเอง

หากต้องการสร้างประสบการณ์ผู้ใช้ที่ไม่เหมือนใคร คุณสามารถใช้การเปลี่ยนแบบกำหนดเองระหว่างตัวควบคุมมุมมอง ใช้โปรโตคอล UIViewControllerAnimatedTransitioning เพื่อกำหนดแอนิเมชัน และโปรโตคอล UIViewControllerTransitioningDelegate เพื่อจัดเตรียมออบเจกต์อนิเมเตอร์แบบกำหนดเอง

นี่คือภาพรวมโดยย่อของขั้นตอน:

  • สร้างคลาสแอนิเมเตอร์ที่สอดคล้องกับ UIViewControllerAnimatedTransitioning โดยใช้เมธอด “transitionDuration(using :)” และ “animateTransition(using :)”
  • ในตัวควบคุมมุมมองต้นฉบับ ให้ปฏิบัติตาม UIViewControllerTransitioningDelegate และใช้วิธีการที่เหมาะสมเพื่อจัดเตรียมออบเจกต์อนิเมเตอร์แบบกำหนดเอง
  • ตั้งค่าคุณสมบัติ “transitioningDelegate” ของตัวควบคุมมุมมองต้นทางเป็น self และคุณสมบัติ “modalPresentationStyle” เป็น .custom
  • นำเสนอตัวควบคุมมุมมองปลายทางโดยใช้ “ปัจจุบัน (_:animated:completion:)”

6. รวมเทคนิคการนำทาง (Combining Navigation Techniques)

ในการทำแอพสร้างแอพ iOS คุณจะต้องผสมผสานเทคนิคการนำทางต่าง ๆ เข้าด้วยกันเพื่อสร้างอินเทอร์เฟซผู้ใช้ที่ราบรื่นและใช้งานง่าย ตัวอย่างเช่น คุณสามารถใช้ตัวควบคุมแถบแท็บเพื่อจัดระเบียบการทำแอพสร้างแอพ iOS ของคุณเป็นส่วนๆ และภายในแต่ละส่วน คุณสามารถใช้ตัวควบคุมการนำทางเพื่อจัดการลำดับชั้นของตัวควบคุมมุมมอง

ในการรวมเทคนิคการนำทาง:

  • ฝังตัวควบคุมมุมมองเริ่มต้นของแต่ละส่วนในตัวควบคุมการนำทาง
  • เชื่อมต่อตัวควบคุมการนำทางเข้ากับตัวควบคุมแถบแท็บโดยใช้ส่วนต่อประสาน “viewControllers”

ลิงก์สากลและลิงก์ในรายละเอียดช่วยให้การทำแอพสร้างแอพ iOS ของคุณตอบสนองต่อ URL ที่ระบุ ทำให้ผู้ใช้สามารถนำทางไปยังเนื้อหาเฉพาะภายในแอปของคุณได้โดยตรงจากแหล่งภายนอก เช่น เว็บไซต์หรือแอปอื่นๆ

ในการจัดการลิงก์สากลและลิงก์ในรายละเอียด:

  • ลงทะเบียนรูปแบบ URL และโดเมนที่เกี่ยวข้องในการตั้งค่า Info.plist และความสามารถของแอป
  • ใช้เมธอด “application(_:continue:restorationHandler:)” ใน AppDelegate หรือ SceneDelegate เพื่อจัดการลิงก์ขาเข้า
  • แยกวิเคราะห์ URL ขาเข้าและนำทางไปยังตัวควบคุมมุมมองที่เหมาะสมหรือเนื้อหาภายในแอปของคุณ

การทำความเข้าใจและเชี่ยวชาญการนำทางและการกำหนดเส้นทางในการทำแอพสร้างแอพ iOS เป็นสิ่งสำคัญสำหรับการสร้างประสบการณ์การใช้งานที่ราบรื่น ด้วยการใช้ตัวควบคุมการนำทาง segues ตัวควบคุมแถบแท็บ ตัวควบคุมมุมมองแยก การเปลี่ยนแบบกำหนดเอง และการจัดการลิงก์สากลและลิงก์ในรายละเอียด คุณสามารถทำแอพสร้างแอพ iOS ที่ออกแบบมาอย่างดีและใช้งานง่าย ทดลองใช้เทคนิคเหล่านี้และค้นหาชุดค่าผสมที่ดีที่สุดที่เหมาะกับความต้องการของการทำแอพสร้างแอพ iOS ของคุณ และปรับปรุงประสบการณ์ผู้ใช้โดยรวม

สร้างแอพ iOS การเขียน App iOS

ตอนที่ 3 สร้างแอพ iOS: SwiftUI คืออะไร
ตอนที่ 5 สร้างแอพ iOS: การจัดการข้อมูล (Data Management)