Uiwindowの色を別のクラスから変更するにはどうすればよいですか?
-
19-09-2019 - |
質問
アクションがクラスMyControllerに送信されたときに、UiWindowの背景色を変更しようとしています。ただし、uiwindowはAppDelegateクラスに存在するため、変数にアクセスして使用して変更してください
window.backgroundColor = [UIColor theColor];
MyControllerで。 MyController.mのコードは次のとおりです。
@implementation MyController - (IBAction)sliderChanged:(id)sender { //want to call some method to change the UIWindow background color } @end
そして、これがappdelegate.hのコードです:
@interface AppDelegate : NSObject { UIWindow *window; } - (void)changeColorToRed:(int)r Green:(int)g Blue:(int)b; @property (nonatomic, retain) IBOutlet UIWindow *window; @end
AppDelegateクラスでChangeColortoredを実装しようとしました。そのメソッドは変数にアクセスできるため window
, 、しかし、私はそれを呼ぶ方法がありませんでした sliderChanged
MyControllerのメソッド。
別のクラスからuiwindow *ウィンドウを変更するにはどうすればよいですか?
解決
[UIApplication sharedApplication].delegate.window.backgroundColor = [UIColor myColor];
ウィンドウが1つしかない場合、
[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor myColor];
他のヒント
どちらもできると思います:
ウィンドウ変数を含むクラスで静的な方法を作成します
また
ウィンドウ変数を新しいクラスに渡します。
所属していません StackOverflow