문제

조치가 클래스 MyController로 전송 될 때 UIwindow의 배경색을 변경하려고합니다. 그러나 Ui -Window는 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