ขั้นตอนการเข้าสู่ระบบ / ออกจากระบบ: SwiftUI และ EnvironmentObject

EnvironmentObject มีประโยชน์เมื่อคุณต้องการสร้างการขึ้นต่อกันในส่วนประกอบที่สูงกว่าของแผนผังเค้าโครง และใช้กับส่วนประกอบที่ต่ำกว่า โดยไม่ต้องส่งผ่านแผนผังผ่านส่วนประกอบย่อยทุกรายการ

ตอนนี้เราจะใช้ EnvironmentObject เพื่อตรวจสอบเมื่อผู้ใช้เข้าสู่ระบบและออกจากระบบ

  1. เมื่อผู้ใช้เข้าสู่ระบบสำเร็จแล้ว (isLoggedIn = true)พวกเขาจะถูกนำไปยังมุมมองแอปพลิเคชันที่เหลือ
  2. เมื่อผู้ใช้ออกจากระบบ (isLoggedIn = false) ณ จุดใดก็ตามภายในแอป ผู้ใช้จะถูกส่งไปยังหน้าเข้าสู่ระบบ

เราต้องการส่วนประกอบดังต่อไปนี้:

  1. โมเดลมุมมองสถานะผู้ใช้
  2. ตัวสลับแอปพลิเคชัน
  3. หน้าจอเข้าสู่ระบบ
  4. หน้าจอหลัก (มุมมองแอปพลิเคชันของเรา)

โมเดลมุมมองสถานะผู้ใช้

โมเดลมุมมองสถานะผู้ใช้ติดตามและเผยแพร่สถานะผู้ใช้ เราเก็บโมเดลมุมมองนี้ไว้ใน EnvironmentObject

เราทำให้อินสแตนซ์โมเดลมุมมองของเราพร้อมใช้งาน (บรรทัดที่ 14) สำหรับมุมมองย่อยทั้งหมด เริ่มต้นจากมุมมอง ApplicationSwitcher

ตัวสลับแอปพลิเคชัน

หน้าจอเข้าสู่ระบบ

หน้าจอเข้าสู่ระบบใช้ UserStateViewModel เพื่อเรียกใช้ signIn

หน้าจอหลักกับปุ่มล็อกเอาต์

หน้าจอหลักใช้ UserStateViewModel เพื่อเรียกใช้ signOut

Application Switcher ติดตามสถานะ isLoggedIn ตลอดเวลา: