5

アクションがクラスMyControllerに送信されるときに、UIWindowの背景色を変更しようとしています。ただし、UIWindowはAppDelegateクラスに存在するため、を使用して変更するための変数にアクセスできません。

window.backgroundColor = [UIColor theColor];

MyControllerで。MyController.mのコードは次のとおりです。

@implementation MyController
-(IBAction)sliderChanged:(id)sender {
 //UIWindowの背景色を変更するために何らかのメソッドを呼び出したい
}
@終わり

そして、これがAppDelegate.hのコードです。

@interface AppDelegate:NSObject {
    UIWindow * window;
}

-(void)changeColorToRed:(int)r Green:(int)g Blue:(int)b;

@property(非アトミック、保持)IBOutlet UIWindow * window;

@終わり

AppDelegateクラスにメソッドchangeColorToRed...を実装しようとしましたが、そのメソッドは変数windowにアクセスできるため、MyControllerのメソッドからそれを呼び出す方法がありませんsliderChangedでした。

別のクラスのUIWindow*ウィンドウを変更するにはどうすればよいですか?

4

2 に答える 2

13
[UIApplication sharedApplication].delegate.window.backgroundColor = [UIColor myColor];

ウィンドウが1つしかない場合は、

[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor myColor];
于 2010-01-09T20:57:56.607 に答える
0

私はあなたがどちらかをすることができると思います:

ウィンドウ変数を含むクラスに静的メソッドを作成します

また

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

于 2010-01-09T20:58:16.527 に答える