كيف يمكنني تغيير لون uiwindow من فئة منفصلة؟
-
19-09-2019 - |
سؤال
أحاول تغيير لون الخلفية من UiWindow عند إرسال إجراء إلى الفئة MyController. ومع ذلك، فإن UiWindow موجودة في فئة AppDelegate، لذلك لا يمكنني الوصول إلى المتغير لتعديله باستخدام
window.backgroundColor = [UIColor theColor];
في myController. هنا هو رمز MyController.M:
implementation MyController - (Ibaction) SliderChanged: (ID) المرسل {// تريد استدعاء بعض الأسلوب لتغيير لون الخلفية uiwindow}
وهنا هو رمز AppDelegate.h:
تضمين التغريدة } - (فراغ) Changecolortored: (int) R Green: (int) G Blue: (int) B؛ property (غير مراقب، الاحتفاظ) iboutlet uiwindow * نافذة؛ @نهاية
حاولت تنفيذ طريقة changecolortored ... في فئة AppDelegate لأن هذه الطريقة لديها إمكانية الوصول إلى المتغير window
, ، لكنني لم يكن لدي أي طريقة للاتصال بذلك من sliderChanged
طريقة في myController.
كيف يمكنني تعديل نافذة UiWindow * من فئة أخرى؟
المحلول
[UIApplication sharedApplication].delegate.window.backgroundColor = [UIColor myColor];
إذا كان هناك نافذة واحدة فقط،
[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor myColor];
نصائح أخرى
أعتقد أنك تستطيع إما:
قم بإجراء بعض الأسلوب الثابت في الفصل الذي يحتوي على متغير النافذة
أو
تمرير متغير النافذة إلى الفئة الجديدة.
لا تنتمي إلى StackOverflow