View Controller Lifecycle در سوئیفت

زمان مطالعه : ۴ دقیقه
آخرین بروزرسانی : ۱۳ مهر ۱۴۰۱
چرخه زندگی View Controller در برنامه نویسی iOS و macOS

در این جلسه میخواهیم در مورد چرخه حیات View Controller صحبت کنیم و ببینیم مفهوم View Controller Lifecycle چیست و در کجاها استفاده میشود.

در این مقاله با موارد زیر آشنا میشویم.

View Controller Lifecycle چیست؟

اگر با برنامه نویسی iOS یا macOS آشنا باشید با انواع ViewController ها مثل UIViewController و NSViewController ها آشنا هستید.

هر ویو کنترلر از زمان ساخته شدن آن و وارد حافظه شدن تا پایان کار آن و پاک شدن از حافظه چند مرحله را طی میکند که هر یک از این مراحل با اجرای توابعی همراه هستند.

که با آشنایی بهتر با این توابع میتوانیم برخی عمل ها را در جای مناسب خود انجام دهیم.

1- ()viewDidLoad

این متود معروف ترین مرحله از چرخه حیات یک ویو کنترلر هست. که بصورت پیش فرض تعریف در کلاس اولیه override شده است. و در طول حیات یک ویو کنترلر فقط یک بار صدا زده میشود.

در این حالت تمام view ها در حافظه لود شده اند. (اما هنوز نمایش داده نشده اند)

در viewDidLoad چه کارهایی انجام دهیم؟
  1. صدا زدن api هایی که فقط یک بار قراره صدا زده بشوند یا به زبان خودمانی ارتباط با اینترنت در حالتی که فقط یک بار نیاز به این کار باشد.
  2. درست کردن رابط کاربری
  3. کارهایی که کلا قراره یک بار انجام بشوند
  4. در این متود هنوز bound ها تعریف نشده اند، برای همین بهتر است خیلی با سایز ها کاری نکنیم

2- ()viewWillAppear

این متود هر سری قبل از آماده شدن view ها برای نمایش به کاربر و قبل از هر گونه انیمیشنی صدا زده میشود (دقت کنید view ها هنوز نشان داده نشده اند)

در viewWillAppear چه کارهایی انجام دهیم؟
  1. پنهان کردن یا نمایش دادن ویو ها قبل از این که کاربر ببیند
  2. غیر فعال کردن فیلد ها
  3. بروز رسانی UI با داده‌هایی که در دسترس نبوده

3- ()viewDidAppear

در این حالت view بصورت کامل برای کاربر به نمایش درآمده و میتواند آن را ببیند.

در viewDidAppear چه کارهایی انجام دهیم؟
  1. ذخیره اطلاعات در پایگاه داده (مثلا core data)
  2. شروع کردن انیمیشن ها
  3. پخش ویدیو یا موزیک
  4. جمع آوری اطلاعات از api یا به زبان خودمانی جمع آوری اطلاعاتی که از اینترنت میخواهیم

4- ()viewWillDisappear

این حالت برعکس حالت viewWillAppear هست، یعنی view در حال از بین رفتن و غیر قابل دیده شدن است ولی هنوز امکان مشاهده آن وجود دارد

در viewWillDisappear چه کارهایی انجام دهیم؟
  1. متوقف کردن شمارشگر
  2. پنهان کردن صفحه کلید
  3. لغو درخواست شبکه
  4. ذخیره آخرین حالت یا state

5- ()viewDidDisappear

این حالت برعکس حالت viewDidAppear هست، یعنی view بصورت کامل از حافظه خارج شده و دیگر قابل مشاهده نیست

در viewDidDisappear چه کارهایی انجام دهیم؟
  1. متوقف کردن اعلان ها (همان notification خودمان)
  2. متوقف کردن observer ها
  3. متوقف کردن sensor ها
نکته مهمی که باید بهش اشاره کنم این هست که مورد هایی که برای هر متود پیشنهاد کردیم تا حدی اختیاری هستند، یعنی شما مجبور نیستید هر کدام را دقیقا در متود مخصوص خود بکار ببرید (البته بعضی ها مثل انیمیشن الزامی هست) و پیشنهاد میکنم وقتی برای حفظ کردن این موارد نذارید و فقط یک سری آن را مرور کنید و در صورت لازم بعدا دوباره به این مقاله مراجعه کنید.
میلاد خط شب
میلاد خط شب
معتقدم هر آدمی میتواند در یک زمینه ای مفید و تاثیر گذار باشد و اصولا آدم "غیر مفید" نداریم. فقط کافی است به موقع و صحیح راهنمایی شود.
پاسخ دهید


به این مقاله علاقه داشتید؟ 🥰

45