تغییر رنگ استوس بار در iOS

رنگ استوس بار (status bar) و یا نوار وضعیت در سیستم عامل iOS به دو صورت سفید و مشکی قابل تغییره!

سیستم عامل رنگ مشکی رو به عنوان رنگ پیشفرض قرار داده ??

برای تغییر دادن رنگ status bar باید به فایل swift. و ViewController برید و استایل مورد نظرتون رو از طریق کد زیر مشخص کنید :

 override var preferredStatusBarStyle: UIStatusBarStyle {
 return .lightContent
 }

حالا با زدن command + R پروژتونو Run کنید، میبینید که رنگ status bar تغییر کرده ?

گام بعدی:

برمیگردیم به Stroyboard و ViewController مورد نظرمونو انتخاب میکنیم و از منوی Editor گزینه Embed in Navigation Controller رو انتخاب میکنیم.

نویگیشن بارو انتخاب کنید و از منوی Attribute Inspector مثل شکل زیر رنگ بار رو به قرمز تغییر میدیم:

یک بار دیگه پروژه رو run کنید ?

همونطوری که میبینید رنگ استوس بار بازم به وضعیت مشکی یا (dark) برگشته که همون حالت دیفالته!

دلیل این موضوع اینه که iOS از وضعیت نوار Navigation Controller برای نمایش ViewController ها استفاده میکنه !

برای حل این موضوع شما باید باز هم وارد کلاس ViewController مورد نظرتون بشین و برای تغییر استایل Navigation Controller در متد viewDidAppear کد زیر رو وارد کنید ?:

override func viewDidAppear(_ animated: Bool) {
 navigationController?.navigationBar.barStyle = .black
}

کد پروژه رو از اینجا میتونین دریافت کنید:‌ github.com