AppDelegate UIWindow在不同的viewController中的addSubView
我想从UIViewController的AppDelegate的UIWindow中添加一个UILabel。 这是我如何做到这一点:
AppDelegate代码 :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease]; } else { self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease]; } [self.window makeKeyAndVisible]; self.window.rootViewController = self.viewController; return YES; }
ViewController代码 :
- (void)viewDidLoad { UILabel *abcd=[[UILabel alloc] initWithFrame:CGRectMake(100.0, 100.0, 200.0, 40.0)]; abcd.text=@"loading..."; abcd.backgroundColor=[UIColor clearColor]; [[[[UIApplication sharedApplication] delegate] window] addSubview:abcd]; [super viewDidLoad]; }
但是我所看到的只是灰色屏幕,却没有标签。 我哪里可能会出错?
1)我build议你颠倒你最后两个委托语句的顺序:
self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible];
2)虽然你应该能够将标签添加到窗口,但是这样做有点不正统。 在任何情况下,尝试添加标签到viewController的视图,看看是否工作,如果是这样,你真的想把它添加到窗口(出于某种原因),然后在这里添加一个评论:
[self.view addSubview:abcd];
如果仍然无法看到标签,则可能是视图控制器存在问题。 你有没有在笔尖中定义任何东西 – 在启动时应该看到的元素? 如果没有,那么就添加一些东西,这样你就可以确定视图实际上已经被加载了。 [我使用的一个技巧是将视图的背景颜色设置为红色或蓝色,所以我可以看到它实际上已经加载了。]
您不能将UILabel添加到UIWindow,您应该添加到UIViewController。 改变这一行:
[[[[UIApplication sharedApplication] delegate] window] addSubview:abcd];
为了这:
[self.view addSubview:abcd];
反转命令
self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible];
然后
尝试添加到视图首先不使用下面的代码窗口
[self.view addSubview:abcd];
如果这不显示您的标签,则视图控制器不会被加载。
如果是这样,那么检查你的xib文件的属性。
删除窗口的分配线,并检查钩在你的窗口在mainwindow.xib文件,如果hoockup不正确的话,它不会加载视图。
也许你的视图控制器的视图覆盖了你添加的视图。 相反,将新视图添加到视图控制器的视图中:
[self.view addSubview:abcd];
在UIWindow中添加UILabel后试试这个
[[[[UIApplication sharedApplication] delegate] window] makeKeyAndVisible];
- 核心数据 – 如何获取具有最大值属性的实体
- 在Swift类中实现AsyncSocketcallback
- iOS企业程序与iOS开发者计划
- 无法调整iOS 5.0中的活动指标?
- NSUbiquityIdentityDidChangeNotification不起作用?
- 将数据从Child Modal VC传递到父视图控制器的最佳方法是什么?
- 另一个Beta版本-Cydia iOS 11有什么新功能?
- 在prepareForSegue中意外地发现无IBOutlet
- 故事板中的UIImagePickerController:UIImagePickerControllerSourceTypePhotoLibrary显示黑屏