ขั้นตอนการเข้าสู่ระบบ / ออกจากระบบ: SwiftUI และ EnvironmentObject
EnvironmentObject มีประโยชน์เมื่อคุณต้องการสร้างการขึ้นต่อกันในส่วนประกอบที่สูงกว่าของแผนผังเค้าโครง และใช้กับส่วนประกอบที่ต่ำกว่า โดยไม่ต้องส่งผ่านแผนผังผ่านส่วนประกอบย่อยทุกรายการ
ตอนนี้เราจะใช้ EnvironmentObject เพื่อตรวจสอบเมื่อผู้ใช้เข้าสู่ระบบและออกจากระบบ
- เมื่อผู้ใช้เข้าสู่ระบบสำเร็จแล้ว (isLoggedIn = true)พวกเขาจะถูกนำไปยังมุมมองแอปพลิเคชันที่เหลือ
- เมื่อผู้ใช้ออกจากระบบ (isLoggedIn = false) ณ จุดใดก็ตามภายในแอป ผู้ใช้จะถูกส่งไปยังหน้าเข้าสู่ระบบ
เราต้องการส่วนประกอบดังต่อไปนี้:
- โมเดลมุมมองสถานะผู้ใช้
- ตัวสลับแอปพลิเคชัน
- หน้าจอเข้าสู่ระบบ
- หน้าจอหลัก (มุมมองแอปพลิเคชันของเรา)
โมเดลมุมมองสถานะผู้ใช้
โมเดลมุมมองสถานะผู้ใช้ติดตามและเผยแพร่สถานะผู้ใช้ เราเก็บโมเดลมุมมองนี้ไว้ใน EnvironmentObject
เราทำให้อินสแตนซ์โมเดลมุมมองของเราพร้อมใช้งาน (บรรทัดที่ 14) สำหรับมุมมองย่อยทั้งหมด เริ่มต้นจากมุมมอง ApplicationSwitcher
ตัวสลับแอปพลิเคชัน
หน้าจอเข้าสู่ระบบ
หน้าจอเข้าสู่ระบบใช้ UserStateViewModel เพื่อเรียกใช้ signIn
หน้าจอหลักกับปุ่มล็อกเอาต์
หน้าจอหลักใช้ UserStateViewModel เพื่อเรียกใช้ signOut
Application Switcher ติดตามสถานะ isLoggedIn ตลอดเวลา: