Estoy intentando agregar un UILabel en UIWindow de AppDelegate desde un UIViewController. Así es como yo estoy haciendo esto:AppDelegate UIWindow addSubView en viewController
código 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;
}
código ViewController:
- (void)viewDidLoad
{
UILabel *abcd=[[UILabel alloc] initWithFrame:CGRectMake(100.0, 100.0, 200.0, 40.0)];
[email protected]"loading...";
abcd.backgroundColor=[UIColor clearColor];
[[[[UIApplication sharedApplication] delegate] window] addSubview:abcd];
[super viewDidLoad];
}
Pero todo lo que estoy viendo es la pantalla gris, pero sin etiqueta. Donde podría estar yendo mal?
Solo un pequeño consejo, no es necesario comprobar si la aplicación se ejecuta en un iPad para cargar una vista específica de iPad o iPhone. Simplemente agregue el '~ ipad' al nombre de la vista.Por lo tanto, el nombre del archivo de la vista de iphone será: 'ViewController.xib' y la versión del iPad será:' ViewController ~ ipad.xib'. Ahora puede cargar la vista con: '[[ViewController alloc] initWithNibName: @" ViewController "bundle: nil]' e iOS cargará el correcto. – rckoenes
Oh ... Gracias por el consejo. :) Ahora la respuesta por favor. :) – Nitish