AppDelegate UIWindow addSubView in verschiedenen viewController

Ich versuche, fügen ein UILabel in UIWindow der AppDelegate von einem UIViewController. Dies ist, wie ich bin, dies zu tun:

AppDelegate code :

- (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-code :

- (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];


}  

Aber alle, die ich sehe ist Grau-Bildschirm, aber kein label. Wo ich vielleicht falsch läuft?

Nur ein kleiner Tipp, Sie nicht haben, um zu prüfen, ob die app läuft auf einem iPad zum laden einer bestimmten iPad oder iPhone anzeigen. Fügen Sie einfach die ~ipad auf den Namen der Ansicht. So ist die iphone-Ansicht Dateiname: ViewController.xib und die neue iPad-version: ViewController~ipad.xib. Jetzt können Sie einfach laden Sie die anzeigen mit: [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] - und iOS-laden Sie die richtige.
Oh...Danke für den Tipp. 🙂 Nun die Antwort bitte. 🙂

InformationsquelleAutor Nitish | 2012-08-29

Schreibe einen Kommentar