Sto tentando di aggiungere una UILabel in UIWindow di AppDelegate da un UIViewController. Questo è il modo in cui sto facendo questo:AppDelegate UIWindow addSubView in diverse viewController
codice 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;
}
codice 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];
}
Ma tutto quello che sto vedendo è schermata grigia, ma nessuna etichetta. Dove potrei sbagliare?
Solo un piccolo suggerimento, non è necessario verificare se l'app è in esecuzione su un iPad per caricare una vista specifica dell'iPad o dell'iPhone. Basta aggiungere '~ ipad' al nome della vista.Quindi il nome del file di visualizzazione iphone sarà: 'ViewController.xib' e la versione per iPad sarà:' ViewController ~ ipad.xib'. Ora puoi caricare la vista con: '[[ViewController alloc] initWithNibName: @" ViewController "bundle: nil]' e iOS caricheranno quello corretto. – rckoenes
Oh ... Grazie per il suggerimento. :) Ora la risposta per favore. :) – Nitish