質問

アクションがクラス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];

他のヒント

どちらもできると思います:

ウィンドウ変数を含むクラスで静的な方法を作成します

また

ウィンドウ変数を新しいクラスに渡します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top