2017-04-20 1 views
-2

아래 코드를 사용하여 현재 창을 찾으려고합니다.+ (void) load에서 현재 UIwindow를 찾을 수없고 objective C에서 + (void) initialize 메소드를 찾을 수 없습니까?

AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 
//[[[UIApplication sharedApplication] keyWindow] addSubview:[[CompanyLogo alloc] init]]; 
[appDelegate.window addSubview:[[CompanyLogo alloc] init]]; 
+1

그리고 그렇게하면 어떻게됩니까? – matt

답변

0

사용이 : 뷰 계층 구조가 생성되기 전에

[[[UIApplication sharedApplication] keyWindow] addSubview:[[CompanyLogo alloc] init]]; 
+0

'+ (void) load' 또는'+ (void) initialize'에서 실행하면 실패합니다. –

+0

Sargis Gevorgyan, 이미 코드를 시도했습니다. – user3310410

+0

CompanyLogo 뷰 프레임이 CGRectZero일까요? 이 코드를 시도하십시오 CompanyLogo * companyLogo = [[CompanyLogo alloc] init]; companyLogo.frame = CGRectMake (0.0f, 0.0f, 100.0f, 100.0f); companyLogo.backgroundColor = [UIColor redColor]; [[[UIApplication sharedApplication] keyWindow] addSubview : companyLogo]; –

1

클래스 방법 +(void)load+ (void)initialize 모두이라고합니다. 거기에 코드를 넣지 마십시오. 대신 application:didFinishLaunchingWithOptions: 방법에 넣으십시오.

+0

Duncan, 사용자 정의 프레임 워크 클래스를 작성 중입니다. 해당 프레임 워크가 앱 실행시 자동으로 초기화됩니다. 프레임 워크에 숨겨진 클래스가 있습니다. – user3310410

관련 문제