Swift รู้จักกับ Life cycle ใน iOS

Ton Attapong
Seekster Development
2 min readFeb 9, 2019

สำหรับนักพัฒนามือใหม่ ที่กำลังสงสัยว่าเราจะเรียก API ตรงไหนดีหรือจะอัพเดท UI ตอนไหนดี วันนี้เราจะมาจัดการมันด้วย Life cycle กันครับ

เริ่มแรกเรามารู้จักกับ Life cycle กันเถอะ ^^

Life cycle ถ้าแปลตรงๆตัวก็คือวงจรชีวิต หรืออาจจะเรียกได้ว่า วัฏจักรของหน้าจอนั่นเอง โดยหลักๆจะประกอบไปด้วย

  1. viewDidLoad()
  2. viewWillAppear()
  3. viewDidAppear()
  4. viewWillDisappear()
  5. viewDidDisappear()

แล้วแต่ละตัวคืออะไรและถูกเรียกตอนไหนบ้างเรามาดูกันเลยดีกว่าครับ >,<”

เริ่มจากเราลองเรียกมาหมดทุกตัวกันเลยครับ แล้วมารันดูผลลัพท์ว่าจะเป็นยังไงบ้าง?

จากรูปจะเห็นว่าเมื่อแอพเปิดขึ้นมาจะเข้า viewDidLoad() ก่อนและหลังจากนั้นจะเข้า viewWillappear() และตามด้วย viewDidAppear()

เอ๊ะ !! แล้ว viewWillDisappear() และ viewDidDisappear() ถูกเรียกตอนไหนล่ะ เดี๋ยวเราลองกดไปหน้าถัดไปกันดูนะครับ

จากรูปจะเห็นว่า ก่อนที่จะเข้า viewWillDisappear() ของหน้าแรก จะเข้า viewDidLoad ของหน้า 2 ก่อน แล้วจึงตามด้วย viewWillDisappear() ของหน้าแรก หลังจากนั้นจะเข้า viewWillAppear() ของหน้าที่ 2 ก่อน จึงจะเข้า viewDidDisappear() ของหน้าแรก

หลังจากที่กดจากหน้าแรกมาหน้าที่ 2 แล้ว เราจะกดกลับไปหน้าแรกกันบ้างนะครับ

จากรูปสังเกตุได้ว่า ขากลับจากหน้าที่ 2 มาหน้าแรก

*** หน้าแรกจะไม่ทำ viewDidLoad() แล้ว ***

ตรงนี้แหละครับที่สำคัญในการที่เราจะเรียก API หรือทำการ Update UI ของเรา

ในกรณีที่เราต้องการให้มีการเรียก API หรือ Update UI ทุกครั้งที่เข้ามายังหน้าแรก ไม่ว่าจะเป็นการเปิดหน้าแรกขึ้น หรือแม้แต่การกลับมาจากหน้าถัดไป ให้เราทำใน viewWillAppear() ได้เลยครับ ^^

ส่วนในกรณีที่เราต้องการเรียก API หรือ Update UI แค่ครั้งเดียวในตอนเปิดหน้านั้นๆ และไม่ต้องการให้ทำอีกในกรณีที่กลับมาจากหน้าถัดไป ให้เราทำใน viewDidLoad() ได้เลยครับ >,<”

จบแล้วนะครับสำหรับ Life cycle หวังว่าจะช่วยให้ทุกคนเข้าใจมากขึ้นนะครับ นี่เป็นบทความแรกของผม หากมีข้อผิดพลาดประการใด ต้องขอโทษมานะที่นี้ด้วยนะครับ

#swift #ios #Xcode #life cycle

--

--