Ui -Window의 색상을 별도의 클래스에서 어떻게 변경할 수 있습니까?
-
19-09-2019 - |
문제
조치가 클래스 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];
다른 팁
나는 당신이 할 수 있다고 생각합니다.
창 변수를 포함하는 클래스에서 정적 메소드를 만듭니다.
또는
창 변수를 새 클래스로 전달하십시오.
제휴하지 않습니다 StackOverflow