我无法在+(无效)加载和+(无效)初始化方法在目标c中找到当前的UIwindow?

问题描述:

我想使用下面的代码找到当前窗口。我无法在+(无效)加载和+(无效)初始化方法在目标c中找到当前的UIwindow?

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

当你这样做会发生什么? – matt

使用本:

[[[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]; –

类的方法+(void)load+ (void)initialize已创建您的视图层次之前都调用。不要把你的代码放在那里。请将其放入application:didFinishLaunchingWithOptions:方法中。

+0

Duncan,我正在创建自定义框架类,该框架在应用程序启动时自动初始化,框架中有一些隐藏类。 – user3310410